logging - Neo4j 3.x 非托管扩展 slf4j 问题

标签 logging neo4j slf4j graph-databases

我已将 neo4j 非托管扩展转换为 Neo4j 3.0.2。现在,当我启动 neo4j 服务器时,出现以下错误(neo4j.log):

WARN  FAILED org.eclipse.jetty.server.handler.HandlerList@26e74145[o.e.j.s.h.MovedContextHandler@6f4821f9{/,null,AVAILABLE}, o.e.j.s.ServletContextHandler@457192e2{/kastr,null,STARTING}, o.e.j.s.ServletContextHandler@15a93e18{/db/manage,null,null}, o.e.j.s.ServletContextHandler@188dddd2{/db/data,null,null}, o.e.j.w.WebAppContext@47c4aef{/browser,jar:file:/C:/apps/neo4j-v3/lib/neo4j-browser-1.1.6.jar!/browser,null}, o.e.j.s.ServletContextHandler@2a15f470{/,null,null}]:     java.lang.NoClassDefFoundError: Lorg/slf4j/Logger; Lorg/slf4j/Logger;
java.lang.NoClassDefFoundError: Lorg/slf4j/Logger;
at java.lang.Class.getDeclaredFields0(Native Method)
at java.lang.Class.privateGetDeclaredFields(Class.java:2583)
at java.lang.Class.getDeclaredFields(Class.java:1916)
at com.sun.jersey.server.impl.modelapi.annotation.IntrospectionModeller.workOutFieldsList(IntrospectionModeller.java:204)

...

WARN  FAILED org.eclipse.jetty.server.Server@5dd52c54: java.lang.NoClassDefFoundError: Lorg/slf4j/Logger; Lorg/slf4j/Logger;
java.lang.NoClassDefFoundError: Lorg/slf4j/Logger;
at java.lang.Class.getDeclaredFields0(Native Method)
at java.lang.Class.privateGetDeclaredFields(Class.java:2583)
at java.lang.Class.getDeclaredFields(Class.java:1916)
at com.sun.jersey.server.impl.modelapi.annotation.IntrospectionModeller.workOutFieldsList(IntrospectionModeller.java:204)
at com.sun.jersey.server.impl.modelapi.annotation.IntrospectionModeller.createResource(IntrospectionModeller.java:116)
at com.sun.jersey.server.impl.application.WebApplicationImpl.getAbstractResource(WebApplicationImpl.java:769)

ERROR Failed to start Neo4j: Starting Neo4j failed: Lorg/slf4j/Logger; Starting Neo4j failed: Lorg/slf4j/Logger;

我使用 slf4j 进行内部日志记录。

现在应该如何配置日志记录?谁能给点建议。

更新

为了成功启动 Neo4j 服务器,我在 pom.xml 中添加了 slf4j-apilogback-corelogback-classic 的三个依赖项>,并将包 jar 文件复制到 neo4j\lib 文件夹中。

现在服务器启动没有错误,扩展加载并工作正常。但所有扩展日志记录都会进入 neo4j.log

就日志记录配置而言,我和以前一样在 conf 文件夹中有一个 logback.xml,但看起来它已被忽略。

引用的Logback.xml是

<configuration>
    <appender name="EXTENSIONS" class="ch.qos.logback.core.rolling.RollingFileAppender">
         <file>logs/extensions.log</file>
         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>logs/extensions.%d{yyyy-MM-dd}.log</fileNamePattern>
            <maxHistory>25</maxHistory>
         </rollingPolicy>
         <encoder>
            <pattern>%date{yyyy-MM-dd HH:mm:ss.SSSZ} %-5level [%logger{15}]: %message%n</pattern>
         </encoder>
    </appender>

    <root level="debug">
        <appender-ref ref="EXTENSIONS"/>
    </root>
</configuration>

最佳答案

neo4j.log 和 debug.log 写入了什么?

您还可以在扩展 pom.xml 中添加 slf4j 依赖项

注意版本与neo4j的pom相同:

对于 Neo4j 3.0.2

<!-- http://mvnrepository.com/artifact/org.slf4j/slf4j-simple -->
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-simple</artifactId>
    <version>1.7.7</version>
</dependency>

或者您可以下载工件并将其放在neo4j的lib目录中。

关于logging - Neo4j 3.x 非托管扩展 slf4j 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37700500/

相关文章:

java - 如何在 IntelliJ IDEA 中查看本地运行的 AppEngine 应用程序的调试日志?

java - 意外的空值,neo4j

neo4j - Spring Data Neo4j 4 与 Neo4j 3.0 : How to pass configuration to embedded driver?

gradle - 调试SLF4J Post Gradle转换

logging - 如何配置 WildFly 8.2.0 日志记录以仅显示调试级别的应用程序

logging - stackdriver-metadata-agent-cluster-level 得到 OOMKilled

logging - 使用 xml pretty-print 的 SOAP 跟踪日志查看器

java - 如何修复异常 : Failed to instantiate SLF4J LoggerFactory?

jQuery - 如何在错误时记录文件

java - 非托管扩展 Neo4j 上的密码查询