LOG4J:按消息级别划分的一个附加程序
我想要有 X 个 log4j 附加程序,其中一个附加到文件中的消息级别,并且所有附加程序都在控制台中打印。但我不明白。
我实际的 log4j.properties:
log4j.rootLogger=ALL, CONSOLA
log4j.appender.CONSOLA=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLA.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLA.layout.ConversionPattern=%-4r %d %-5p %c - %m%n
log4j.appender.WARNLOG=org.apache.log4j.FileAppender
log4j.appender.WARNLOG.threshold=WARN
log4j.appender.WARNLOG.file=XX/web/WEB-INF/serverlogs/warn-server.log
log4j.appender.WARNLOG.layout=org.apache.log4j.PatternLayout
log4j.appender.WARNLOG.layout.ConversionPattern=%-4r %d %-5p %c - %m%n
log4j.appender.WARNLOG.append=true
log4j.appender.WARNLOG.MaxFileSize=250KB
log4j.appender.WARNLOG.MaxBackupIndex=backup
log4j.appender.FATALLOG=org.apache.log4j.FileAppender
log4j.appender.FATALLOG.threshold=FATAL
log4j.appender.FATALLOG.file=XX/web/WEB-INF/serverlogs/fatal-server.log
log4j.appender.FATALLOG.layout=org.apache.log4j.PatternLayout
log4j.appender.FATALLOG.layout.ConversionPattern=%-4r %d %-5p %c - %m%n
log4j.appender.FATALLOG.append=true
log4j.appender.FATALLOG.MaxFileSize=250KB
log4j.appender.FATALLOG.MaxBackupIndex=backup
log4j.logger.com.XX=WARN, WARNLOG
log4j.logger.com.XX=FATAL, FATALLOG
已解决:
我使用 LevelRangeFilter
<log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'>
<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%-4r %d %-5p %c - %m%n"/>
</layout>
</appender>
<appender name="FATALLOG" class="org.apache.log4j.FileAppender">
<param name="File" value="xx/web/WEB-INF/serverlogs/fatal-server.log"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%-4r %d %-5p %c - %m%n"/>
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="LevelMax" value="FATAL"/>
<param name="LevelMin" value="FATAL"/>
<param name="AcceptOnMatch" value="true"/>
</filter>
</appender>
<appender name="WARNLOG" class="org.apache.log4j.FileAppender">
<param name="File" value="xx/web/WEB-INF/serverlogs/warn-server.log"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%-4r %d %-5p %c - %m%n"/>
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="LevelMax" value="WARN"/>
<param name="LevelMin" value="WARN"/>
<param name="AcceptOnMatch" value="true"/>
</filter>
</appender>
<logger name="com.xx">
<appender-ref ref="CONSOLE" />
<appender-ref ref="FATALLOG" />
<appender-ref ref="WARNLOG" />
</logger>
</log4j:configuration>
I want have X number of log4j appenders, one to messages level in files, and all print in console. But I not get.
My actual log4j.properties:
log4j.rootLogger=ALL, CONSOLA
log4j.appender.CONSOLA=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLA.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLA.layout.ConversionPattern=%-4r %d %-5p %c - %m%n
log4j.appender.WARNLOG=org.apache.log4j.FileAppender
log4j.appender.WARNLOG.threshold=WARN
log4j.appender.WARNLOG.file=XX/web/WEB-INF/serverlogs/warn-server.log
log4j.appender.WARNLOG.layout=org.apache.log4j.PatternLayout
log4j.appender.WARNLOG.layout.ConversionPattern=%-4r %d %-5p %c - %m%n
log4j.appender.WARNLOG.append=true
log4j.appender.WARNLOG.MaxFileSize=250KB
log4j.appender.WARNLOG.MaxBackupIndex=backup
log4j.appender.FATALLOG=org.apache.log4j.FileAppender
log4j.appender.FATALLOG.threshold=FATAL
log4j.appender.FATALLOG.file=XX/web/WEB-INF/serverlogs/fatal-server.log
log4j.appender.FATALLOG.layout=org.apache.log4j.PatternLayout
log4j.appender.FATALLOG.layout.ConversionPattern=%-4r %d %-5p %c - %m%n
log4j.appender.FATALLOG.append=true
log4j.appender.FATALLOG.MaxFileSize=250KB
log4j.appender.FATALLOG.MaxBackupIndex=backup
log4j.logger.com.XX=WARN, WARNLOG
log4j.logger.com.XX=FATAL, FATALLOG
SOLVED:
I use LevelRangeFilter
<log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'>
<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%-4r %d %-5p %c - %m%n"/>
</layout>
</appender>
<appender name="FATALLOG" class="org.apache.log4j.FileAppender">
<param name="File" value="xx/web/WEB-INF/serverlogs/fatal-server.log"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%-4r %d %-5p %c - %m%n"/>
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="LevelMax" value="FATAL"/>
<param name="LevelMin" value="FATAL"/>
<param name="AcceptOnMatch" value="true"/>
</filter>
</appender>
<appender name="WARNLOG" class="org.apache.log4j.FileAppender">
<param name="File" value="xx/web/WEB-INF/serverlogs/warn-server.log"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%-4r %d %-5p %c - %m%n"/>
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="LevelMax" value="WARN"/>
<param name="LevelMin" value="WARN"/>
<param name="AcceptOnMatch" value="true"/>
</filter>
</appender>
<logger name="com.xx">
<appender-ref ref="CONSOLE" />
<appender-ref ref="FATALLOG" />
<appender-ref ref="WARNLOG" />
</logger>
</log4j:configuration>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您必须有不同的记录器或使用 LevelMatchFilter。
有关更多信息,您可以搜索完整的 Log4j 手册。
您可以在此处或这里
You must have different loggers or use the LevelMatchFilter.
For more information you can search into the complete Log4j manual.
You can found it here or here
使用 LevelMatchFilter 或对其进行调整。
Use a LevelMatchFilter or adapt it.