【问题标题】:Neo4j 3.x unmanaged extension slf4j issueNeo4j 3.x 非托管扩展 slf4j 问题
【发布时间】:2016-10-08 14:29:18
【问题描述】:

我已将我的 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>

【问题讨论】:

  • 你使用的是哪个版本的 slf4j-api 和哪个绑定?
  • @ceki self4j-api 1.7.7

标签: logging neo4j slf4j graph-databases


【解决方案1】:

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目录下。

【讨论】:

  • 我在 pom.xml 中有 slf4j 依赖项。也没有运气,将 slf4 包 jar 添加到 neo4j lib。仍然得到同样的错误。我使用来自 neo4j.log 的堆栈跟踪快照更新了问题。顺便说一句,debug.log 中没有错误。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多