首页 > 解决方案 > 调整独立 Neo4j 服务器的日志记录

问题描述

在运行 Neo4j 独立社区 Docker 时,一些日志被写入标准输出,一些被写入容器内的文件:debug.log

我希望能够设置 log4j 选项,如日志级别、附加程序等。原因是:

所以问题是,如何为在容器内运行的 Neo4j 服务器设置自定义 log4j 属性?

如果可能的话,它没有记录在案,但我已经尝试了通常的事情。首先将 a 添加log4j.xml到类路径但无济于事。我也尝试设置dbms.jvm.additional

我已验证 Neo4j 进程具有正确的 jvm 参数:

/usr/local/openjdk-11/bin/java -cp /var/lib/neo4j/plugins:/var/lib/neo4j/conf:/var/lib/neo4j/lib/*:/var/lib/neo4j/plugins/* 
-Xms2048m -Xmx2048m -XX:+UseG1GC -XX:-OmitStackTraceInFastThrow -XX:+AlwaysPreTouch 
-XX:+UnlockExperimentalVMOptions -XX:+TrustFinalNonStaticFields -XX:+DisableExplicitGC 
-XX:MaxInlineLevel=15 -XX:-UseBiasedLocking -Djdk.nio.maxCachedBufferSize=262144 
-Dio.netty.tryReflectionSetAccessible=true -Djdk.tls.ephemeralDHKeySize=2048 
-Djdk.tls.rejectClientInitiatedRenegotiation=true -XX:FlightRecorderOptions=stackdepth=256 
-XX:+UnlockDiagnosticVMOptions -XX:+DebugNonSafepoints -Dlog4j2.disable.jmx=true 
-Dlog4j.configuration=file:/var/lib/neo4j/conf/log4j.properties 
-Dlog4j.configurationFile=file:/var/lib/neo4j/conf/log4j.xml 
-Dlog4j2.configurationFile=file:/var/lib/neo4j/conf/log4j2.xml 
-Dfile.encoding=UTF-8 org.neo4j.server.CommunityEntryPoint 
--home-dir=/var/lib/neo4j --config-dir=/var/lib/neo4j/conf

我已经验证没有 lib-jars 包含优先的 log4j-properties。

无论我尝试什么,都不会对服务器的日志记录方式进行任何更改。相同的事件被写入/logs/debug.log. 关于错误的 log4j 配置或类似的东西没有例外。

我创建了一个小项目以便于调试。

标签: dockerneo4jlog4j2

解决方案


我会将文件写到标准输出。

# forward logs to docker log collector
RUN ln -sf /dev/stdout /logs/debug.log

所以这是一个“码头工人”解决方案,但很方便,也适用于其他用例。


推荐阅读