我有一个庞大的代码库,可以提供有关大学的信息请求。有一个基础框架代码,我们有一些单独的包,用于college1、college2等,
每当有关于大学 X 的某些信息的请求时,都会触发框架代码和大学特定代码。我想查看为 X 公司去一个地点和 Y 公司去一个地点的所有请求生成的日志。
如何使用 JUL 或 apache 的 logging.properties 文件来实现这一点?如何确保由 X 公司的通用框架库编写的日志到一个位置,而由 Y 公司的通用框架库编写的日志到另一个位置?
我将有一个包含附加程序的 xml 文件,以指定哪些包进入哪些日志文件。
然后,您可以在应用程序入口点加载 xml 文件。以下是我在当前项目中使用的示例
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<!-- appenders -->
<appender name="console" class="org.apache.log4j.ConsoleAppender">
<param name="Target" value="System.out" />
<param name="threshold" value="error" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="[%t] %p %c - %m%n" />
</layout>
</appender>
<appender name="codebaseXAppender" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="codebaseX.log" />
<param name="MaxFileSize" value="10MB" />
<param name="MaxBackupIndex" value="10"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="[%t] %d %p %c - %m%n"/>
</layout>
</appender>
<appender name="codebaseYAppender" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="codebaseY.log" />
<param name="MaxFileSize" value="10MB" />
<param name="MaxBackupIndex" value="10"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="[%t] %d %p %c - %m%n"/>
</layout>
</appender>
<!-- Root Logger -->
<root>
<priority value="error" />
<appender-ref ref="console" />
</root>
<!-- Application logger -->
<logger name="com.codebasePackageX" additivity="true">
<level value="info" />
<appender-ref ref="codebaseXAppender" />
</logger>
<!-- Application logger -->
<logger name="com.codebasePackageY" additivity="true">
<level value="info" />
<appender-ref ref="codebaseYAppender" />
</logger>
</log4j:configuration>