【发布时间】:2010-10-01 03:36:43
【问题描述】:
现在我以普通的香草/开箱即用的形式使用 log4j。我在类路径中有一个 log4j.properties 文件,并且在 Web 应用程序中散布着各种记录器消息。现在我有兴趣将日志消息从包“xyz”中的方法“abc”重定向到特定的日志文件“pqr”。我不希望包 xyz 中的所有记录器消息都转到“pqr”,而只是来自包中的一种方法(“abc”)。
我如何做到这一点?
TIA 博
【问题讨论】:
现在我以普通的香草/开箱即用的形式使用 log4j。我在类路径中有一个 log4j.properties 文件,并且在 Web 应用程序中散布着各种记录器消息。现在我有兴趣将日志消息从包“xyz”中的方法“abc”重定向到特定的日志文件“pqr”。我不希望包 xyz 中的所有记录器消息都转到“pqr”,而只是来自包中的一种方法(“abc”)。
我如何做到这一点?
TIA 博
【问题讨论】:
这是我正在使用的配置文件。这会将一些特定消息发送到文件,将其他消息发送到控制台。这可能会对您有所帮助。 这在独立应用程序中使用。
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
<!-- ============================== -->
<!-- Append SQL messages to a file. -->
<!-- ============================== -->
<appender name="SQL" class="org.apache.log4j.RollingFileAppender">
<param name="Threshold" value="TRACE" />
<param name="File" value="sql-statement.log" />
<param name="Append" value="true" />
<param name="MaxFileSize" value="5000KB" />
<param name="MaxBackupIndex" value="100" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%m%n" />
</layout>
</appender>
<!-- ============================== -->
<!-- Append messages to the console -->
<!-- ============================== -->
<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
<param name="Target" value="System.out" />
<param name="Threshold" value="DEBUG" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="[%p] %m%n" />
</layout>
</appender>
<!-- =============================== -->
<!-- Application specific categories -->
<!-- =============================== -->
<category name="com.edusoft.crashtest.qsbi">
<priority value="DEBUG" />
<appender-ref ref="CONSOLE" />
</category>
<category name="com.edusoft.crashtest.qsbi.printer" additivity="true">
<priority value="TRACE" />
<appender-ref ref="SQL" />
</category>
<!-- Setup the Root category -->
<root>
<priority value="ERROR" />
</root>
【讨论】:
我不认为它可以那么细化。为什么不将该方法拉到单独的类中?
【讨论】: