我必须在我们的Web应用程序中以下列方式实现log4j:
1)DEBUG级别日志不得附加在任何文件中。在开发应用程序时,这些日志应仅在开发工作站/ IDE的控制台上可用。 - 它现在正在发生但是在部署之后这些日志被附加在catalina.out中,我必须停止它。
2)INFO转发应用程序日志应该放在一个日志文件中 - 它现在正在发生。
3)使用Spring AOP对整个应用程序进行性能记录时,还应该进行另一个基于文件的日志记录 - 尚未实现。
log4j配置如下:
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="true">
<appender name="consoleAppender" class="org.apache.log4j.ConsoleAppender" >
<param name="Threshold" value="DEBUG" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %-5p [%c{1}] %m %n" />
</layout>
</appender>
<appender name="fileAppender" class="org.apache.log4j.DailyRollingFileAppender">
<param name="Threshold" value="INFO" />
<param name="File" value="${catalina.home}/logs/dashboard.log"/>
<param name="DatePattern" value="'-'yyyy-MM-dd'.log'"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="[%d{ISO8601}] - %-5p- [%X{USER_ENCRYPT_ID}%x] - %C.%M(%F:%L) - %m %n" />
</layout>
</appender>
<logger name="com.project14" additivity="false" >
<level value="DEBUG" />
<appender-ref ref="consoleAppender" />
<appender-ref ref="fileAppender"/>
</logger>
</log4j:configuration>
我是log4j配置的新手,所以请验证并建议必要的实施以达到我的要求。
答案 0 :(得分:1)
据我所知,您需要不同的appender将日志推送到不同的日志文件或类似的东西。
你在这里缺少一件事。请尝试使用过滤器。这是一个简单的示例,它使用过滤器将不同的日志发送到不同的文件。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="true">
<appender name="consoleAppender" class="org.apache.log4j.ConsoleAppender">
<param name="Threshold" value="DEBUG" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %-5p [%c{1}] %m %n" />
</layout>
</appender>
<appender name="fileAppenderInfo" class="org.apache.log4j.DailyRollingFileAppender">
<param name="Threshold" value="INFO" />
<param name="File" value="d:/info.log" />
<param name="DatePattern" value="'-'yyyy-MM-dd'.log'" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="[%d{ISO8601}] - %-5p- [%X{USER_ENCRYPT_ID}%x] - %C.%M(%F:%L) - %m %n" />
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="levelMin" value="INFO" />
<param name="levelMax" value="INFO" />
</filter>
</appender>
<appender name="fileAppenderDebug" class="org.apache.log4j.DailyRollingFileAppender">
<param name="Threshold" value="DEBUG" />
<param name="File" value="d:/debug.log" />
<param name="DatePattern" value="'-'yyyy-MM-dd'.log'" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="[%d{ISO8601}] - %-5p- [%X{USER_ENCRYPT_ID}%x] - %C.%M(%F:%L) - %m %n" />
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="levelMin" value="DEBUG" />
<param name="levelMax" value="DEBUG" />
</filter>
</appender>
<appender name="fileAppenderWarn" class="org.apache.log4j.DailyRollingFileAppender">
<param name="Threshold" value="WARN" />
<param name="File" value="d:/warn.log" />
<param name="DatePattern" value="'-'yyyy-MM-dd'.log'" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="[%d{ISO8601}] - %-5p- [%X{USER_ENCRYPT_ID}%x] - %C.%M(%F:%L) - %m %n" />
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="levelMin" value="WARN" />
<param name="levelMax" value="WARN" />
</filter>
</appender>
<logger name="com.log4j.test" additivity="false">
<level value="all"/>
<appender-ref ref="fileAppenderWarn" />
<appender-ref ref="fileAppenderDebug"/>
<appender-ref ref="fileAppenderInfo"/>
</logger>
</log4j:configuration>
希望这会有所帮助。如果你遇到其他一些问题,请回复我。