0

我正在使用命令行运行 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

这些似乎都不会影响 STDOUT 日志,并且似乎卡在调试级别。有没有办法改变日志级别?对文档的任何参考都会有所帮助。我看过:

https://github.com/jmxtrans/jmxtrans/wiki/MoreExamples

但找不到控制日志记录的配置。

4

1 回答 1

2

对于在谷歌搜索后结束的任何人:由于 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 实用程序)。

于 2015-06-03T15:14:59.080 回答