有办法配置log4j,这样它将不同级别的日志输出到不同的输出源吗?
我想设置多个日志文件。主日志文件将捕获所有信息为所有类及以上消息。(在开发中,它将捕获所有调试和上面的消息,和跟踪特定类)。
然后,我想要一个单独的日志文件。日志文件将捕获所有调试消息类的特定子集,而忽略其他所有消息类。
有办法得到之后我什么?
有办法配置log4j,这样它将不同级别的日志输出到不同的输出源吗?
我想设置多个日志文件。主日志文件将捕获所有信息为所有类及以上消息。(在开发中,它将捕获所有调试和上面的消息,和跟踪特定类)。
然后,我想要一个单独的日志文件。日志文件将捕获所有调试消息类的特定子集,而忽略其他所有消息类。
有办法得到之后我什么?
这应该让你开始:
log4j.rootLogger=QuietAppender, LoudAppender, TRACE
# setup A1
log4j.appender.QuietAppender=org.apache.log4j.RollingFileAppender
log4j.appender.QuietAppender.Threshold=INFO
log4j.appender.QuietAppender.File=quiet.log
...
# setup A2
log4j.appender.LoudAppender=org.apache.log4j.RollingFileAppender
log4j.appender.LoudAppender.Threshold=DEBUG
log4j.appender.LoudAppender.File=loud.log
...
log4j.logger.com.yourpackage.yourclazz=TRACE
也许是这样的?
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<!-- general application log -->
<appender name="MainLogFile" class="org.apache.log4j.FileAppender">
<param name="File" value="server.log" />
<param name="Threshold" value="INFO" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%-5p %t [%-40.40c] %x - %m%n"/>
</layout>
</appender>
<!-- additional fooSystem logging -->
<appender name="FooLogFile" class="org.apache.log4j.FileAppender">
<param name="File" value="foo.log" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%-5p %t [%-40.40c] %x - %m%n"/>
</layout>
</appender>
<!-- foo logging -->
<logger name="com.example.foo">
<level value="DEBUG"/>
<appender-ref ref="FooLogFile"/>
</logger>
<!-- default logging -->
<root>
<level value="INFO"/>
<appender-ref ref="MainLogFile"/>
</root>
</log4j:configuration>
因此,所有信息消息被写到server.log;相比之下,foo。日志包含com . example。只foo消息,包括级的调试信息。
我有这个问题,但有一点不一样,我试图登录不同的内容不同的文件。我有信息低电平的调试日志,和高标准的用户日志。我想去只有一个低阶的文件,和高标准的去一个文件,和一个syslogd。
我的解决方案是配置3输出源,然后设置日志如下:
log4j.threshold=ALL
log4j.rootLogger=,LowLogger
log4j.logger.HighLevel=ALL,Syslog,HighLogger
log4j.additivity.HighLevel=false
这部分对我来说是困难的是log4j。日志可以有多个输出源上市。我想做一次一行。
希望这可以帮助一个人在某一时刻!
主日志文件/ appender,设立了一个<代码>。阈值=信息> < /代码限制实际登录信息及以上的appender,不管伐木工调试,启用跟踪,等。
如上捕调试和什么……你d可能要编写一个定制的appender。
不过我建议不这样做,因为它听起来会使故障排除和分析非常困难:
演示链接:< a href = " https://github.com/RazvanSebastian/spring_multiple_log_files_demo.git " rel = " nofollow noreferrer " > https://github.com/RazvanSebastian/spring_multiple_log_files_demo.git < / >
我的解决方案是基于XML配置使用<代码> spring-boot-starter-log4j > < /代码。的例子是一个基本的例子使用<代码> spring-boot-starter > < /代码和两个伐木工人到不同的日志文件写道。