如何为 jmxtrans 设置日志级别
How to set log level for jmxtrans
我是 运行 jmxtrans,使用类似这样的命令行:
java -Djmxtrans.log.level=10 -jar jmxtrans-249-SNAPSHOT-all.jar -e -f queues4.json -s 5
我已尝试更改以下日志级别设置:
-Djmxtrans.log.level=10
-Djmxtrans.log.level=0
-Djmxtrans.log.level=INFO
-Djmxtrans.log.level=ERROR
None 其中似乎影响了 STDOUT 日志,并且它似乎停留在调试级别。有什么办法可以更改日志级别?对文档的任何参考都会有所帮助。
我看过:
https://github.com/jmxtrans/jmxtrans/wiki/MoreExamples
但找不到控制日志记录的配置。
对于在 google 搜索后到达此处的任何人:由于 jmxtrans 中 slf4j、log4j 和 logback 的依赖性冲突,日志当前在 jmxtrans 中已损坏。
https://github.com/jmxtrans/jmxtrans/issues/215
解决此问题的一种方法是将 logback.xml 文件插入到 jmxtrans jar 文件的根目录中:
<property name="logs-folder" value="${catalina.base}/logs"/>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${jmxtrans.log.dir}/jmxtrans.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- daily rollover -->
<fileNamePattern>${jmxtrans.log.dir}/jmxtrans_%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<!-- or whenever the file size reaches 300MB -->
<maxFileSize>300MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!-- keep 30 days' worth of history -->
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%date %level [%thread] %logger{36} [%file:%line] %msg%n</pattern>
</encoder>
</appender>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>%date %-5level [%thread] %-36logger{36} [%file:%line][%method] %msg%n</Pattern>
</layout>
</appender>
<logger name="com.googlecode.jmxtrans" level="${jmxtrans.log.level}"/>
<logger name="org.quartz" level="WARN"/>
<root level="DEBUG">
<appender-ref ref="FILE"/>
<appender-ref ref="STDOUT"/>
</root>
请注意,我向日志添加了滚动策略(您可以删除它并改用 Linux logrotate 实用程序)。
我是 运行 jmxtrans,使用类似这样的命令行:
java -Djmxtrans.log.level=10 -jar jmxtrans-249-SNAPSHOT-all.jar -e -f queues4.json -s 5
我已尝试更改以下日志级别设置:
-Djmxtrans.log.level=10
-Djmxtrans.log.level=0
-Djmxtrans.log.level=INFO
-Djmxtrans.log.level=ERROR
None 其中似乎影响了 STDOUT 日志,并且它似乎停留在调试级别。有什么办法可以更改日志级别?对文档的任何参考都会有所帮助。 我看过:
https://github.com/jmxtrans/jmxtrans/wiki/MoreExamples
但找不到控制日志记录的配置。
对于在 google 搜索后到达此处的任何人:由于 jmxtrans 中 slf4j、log4j 和 logback 的依赖性冲突,日志当前在 jmxtrans 中已损坏。
https://github.com/jmxtrans/jmxtrans/issues/215
解决此问题的一种方法是将 logback.xml 文件插入到 jmxtrans jar 文件的根目录中:
<property name="logs-folder" value="${catalina.base}/logs"/>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${jmxtrans.log.dir}/jmxtrans.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- daily rollover -->
<fileNamePattern>${jmxtrans.log.dir}/jmxtrans_%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<!-- or whenever the file size reaches 300MB -->
<maxFileSize>300MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!-- keep 30 days' worth of history -->
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%date %level [%thread] %logger{36} [%file:%line] %msg%n</pattern>
</encoder>
</appender>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>%date %-5level [%thread] %-36logger{36} [%file:%line][%method] %msg%n</Pattern>
</layout>
</appender>
<logger name="com.googlecode.jmxtrans" level="${jmxtrans.log.level}"/>
<logger name="org.quartz" level="WARN"/>
<root level="DEBUG">
<appender-ref ref="FILE"/>
<appender-ref ref="STDOUT"/>
</root>
请注意,我向日志添加了滚动策略(您可以删除它并改用 Linux logrotate 实用程序)。