Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker 调整独立Neo4j服务器的日志记录_Docker_Neo4j_Log4j2 - Fatal编程技术网

Docker 调整独立Neo4j服务器的日志记录

Docker 调整独立Neo4j服务器的日志记录,docker,neo4j,log4j2,Docker,Neo4j,Log4j2,运行Neo4j独立社区Docker时,一些日志会写入标准输出,一些日志会写入容器中的文件:debug.log 我希望能够设置log4j选项,如日志级别、appenders等。原因如下: 在AWS ECS中运行时,我无法访问日志文件 调试日志非常冗长 log4j属性便于部署和管理 问题是,如何为在容器中运行的Neo4j服务器设置自定义log4j属性? 即使有可能,也没有文档记录,但我已经尝试了人们开始做的事情。首先向类路径添加一个log4j.xml,但没有效果。我还尝试将dbms.jvm.ad

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

我希望能够设置log4j选项,如日志级别、appenders等。原因如下:

  • 在AWS ECS中运行时,我无法访问日志文件
  • 调试日志非常冗长
  • log4j属性便于部署和管理
问题是,如何为在容器中运行的Neo4j服务器设置自定义log4j属性?

即使有可能,也没有文档记录,但我已经尝试了人们开始做的事情。首先向类路径添加一个
log4j.xml
,但没有效果。我还尝试将
dbms.jvm.additional
设置为

  • -Dlog4j.configuration=
  • -Dlog4j.configurationFile=
  • -Dlog4j2.configurationFile==
我已经验证了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
我已经验证了没有libjar包含优先的log4j属性

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


为了便于调试,我创建了一个小程序。

我将把文件写到stdout

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

因此,这是一个“docker”解决方案,但很方便,也适用于其他用例。

谢谢,但不是我想要的:)我想要log4j选项,这样我也可以过滤事件。此外,您的解决方案不适用于上面的图像,因为用户没有对“/dev/stdout”tail-f的写入权限,无法将日志发送到stdout,但需要更改开始脚本,该脚本不太干净,也不会过滤任何log4j样式的事件。请将您的过滤需求添加到您的问题中。我还没有看到这些需求。我想我很清楚log4j属性是我想要的解决方案。这包括过滤、设置日志级别、附加器等,但我可以尝试澄清一下