【问题标题】:Howto log embedded orientdb database with slf4j如何使用 slf4j 记录嵌入式 orientdb 数据库
【发布时间】:2014-10-22 11:45:22
【问题描述】:

我使用嵌入式数据库 (plocal) 启动我的应用程序。 OrientDB 版本为 2.0 M2。

ODatabasePoolBase<ODatabaseDocumentTx> pool = new ODatabaseDocumentPool("plocal:" + database, getUsername(), getPassword());

在我的应用程序中,我使用带有“Log4j 2 SLF4J Binding”的 slf4j 进行日志记录。

我在日志文件中看到从我的应用程序生成的任何日志消息。 现在我想在同一个日志文件中获取 orientdb 服务器日志消息以进行调试。

到目前为止我尝试过的(不成功):

  • 将 jul-to-slf4j-1.7.7.jar 添加到类路径并调用 SLF4JBridgeHandler.removeHandlersForRootLogger(); SLF4JBridgeHandler.install(); 启动时。

【问题讨论】:

    标签: logging slf4j orientdb


    【解决方案1】:

    日志可以通过在classpath中加入jul-to-slf4j来实现:

        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>jul-to-slf4j</artifactId>
        </dependency>
    

    将此添加到您的初始化代码中

        SLF4JBridgeHandler.removeHandlersForRootLogger();
        SLF4JBridgeHandler.install();
        java.util.logging.Logger logger = java.util.logging.Logger.getLogger("com.orientechnologies");
        logger.setLevel(Level.ALL);
    

    现在您可以在 log4j 配置中设置单独的日志级别:

        <Logger name="com.orientechnologies" level="INFO" />
    

    【讨论】:

    • 我使用了前两行代码:SLF4JBridgeHandler.removeHandlersForRootLogger(); SLF4JBridgeHandler.install(); 并且 orient-db 的日志被重定向到 slf4j。
    【解决方案2】:

    OrientDB Server 使用自己的 LogFormatter。要在您的应用程序调用中使用它:

    OLogManager.installCustomFormatter();
    

    LogFormatter 由服务器自动安装。要禁用它,请将设置 orientdb.installCustomFormatter 定义为 false。示例:

    java ... -Dorientdb.installCustomFormatter=false=false ...
    

    更多信息请查看官方文档: http://orientdb.com/docs/2.0/orientdb.wiki/Logging.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-04-24
      • 1970-01-01
      • 1970-01-01
      • 2011-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多