我已将 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-api
、logback-core
和 logback-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/