【问题标题】:How to move logs from console to a file?如何将日志从控制台移动到文件?
【发布时间】:2012-03-28 12:23:37
【问题描述】:

在我们的项目中,目前我们有一个主 portal-log4j.xml,在我们的项目中,我们需要使用 portal-log4j-ext.xml 覆盖它 在 portal-log4j.xml 中,我们默认将所有日志记录到控制台。

    <root>
    <priority value="INFO" />
    <appender-ref ref="CONSOLE" />
    <appender-ref ref="FILE" />
</root>

在覆盖的 portal-log4j-ext.xml 文件中,我们有以下代码:

<appender name="FILE" class="org.apache.log4j.RollingFileAppender">
    <param name="maxFileSize" value="10000kb" />
    <param name="maxBackupIndex" value="20" />
    <param name="file" value="D:/myLogFile.log" />
    <layout class="org.apache.log4j.PatternLayout">
      <param name="ConversionPattern" value="&#37;d{ISO8601} &#37;-5p [&#37;C{1}] &#37;x: &#37;m&#37;n"/>
    </layout>
</appender>     

<logger name="com.company.layoutimporter">
    <level value="DEBUG" />
    <appender-ref ref="FILE" />
</logger>

如您所见,我可以写入文件,但它也可以在控制台中记录。 我们如何覆盖此默认行为,以便我可以将特定于包的消息仅记录到特定的日志文件(而不是控制台)。

提前致谢!

【问题讨论】:

  • 嘿...自己找到了解决方案.. 只需将 additivity="false" 添加到 标记即可。这基本上会通过父标签再次跳过日志记录。更多信息:veerasundar.com/blog/2009/08/…
  • 您可以随时添加此评论作为答案吗?

标签: java xml apache log4j appender


【解决方案1】:

自己找到了一个解决方案.. 只需将 additivity="false" 添加到 logger 标记即可。

这基本上会再次跳过父标签的日志记录。

更多信息:Additivity - What and Why ?

【讨论】:

    猜你喜欢
    • 2019-03-18
    • 2013-11-11
    • 2014-12-09
    • 1970-01-01
    • 2021-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多