我尝试自定义 log4j 的输出,为此我使用 org.apache.log4j.PatternLayout。
我当前的输出是:
2016-11-30 10:04:42,928 信息 [org.mobicents.smsc.library.CdrGenerator] OrangeSmsc,18004,null,null,null,id:0000018004 sub:00,,21
我希望它看起来像这样:
2016-11-30 10:04:42 OrangeSmsc,18004,null,null,null,id:0000018004 子:00,,21
为此,我使用以下模式:
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{yyyy-MM-dd} %m%n"/>
</layout>
但它不起作用。
完整的附加程序描述:
<appender name="CDR" class="org.jboss.logging.appender.DailyRollingFileAppender">
<errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
<param name="File" value="${jboss.server.home.dir}/log/cdr.log"/>
<param name="Append" value="true"/>
<param name="Threshold" value="INFO"/>
<param name="DatePattern" value="'.'yyyy-MM-dd"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{yyyy-MM-dd} %m%n"/>
</layout>
</appender>
最佳答案
我能够使用您提到的模式运行 log4j 日志。这没有问题。唯一的问题是,直到我评论以下行
之前它才起作用<param name="DatePattern" value="'.'yyyy-MM-dd" />
这是最终的appender 的样子。 (请注意,我已经删除了 jboss 记录器错误处理程序)
<appender name="CDR" class="org.apache.log4j.RollingFileAppender">
<!-- <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler" /> -->
<param name="File" value="cdr.log" />
<param name="Append" value="true" />
<param name="Threshold" value="DEBUG" />
<!--
<param name="DatePattern" value="'.'yyyy-MM-dd" /> -->
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{yyyy-MM-dd} %m%n" />
</layout>
</appender>
这是我放在java类上的日志。
logger.debug("Log4j appender configuration is successful !!");
这是我使用的addepter,下面是输出文件内容。
2016-11-30 Log4j appender configuration is successful !!
关于java - 自定义输出log4j,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40884494/