首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用log4j创建不同内容的多个日志文件

使用log4j创建不同内容的多个日志文件
EN

Stack Overflow用户
提问于 2009-04-08 02:31:18
回答 4查看 102.9K关注 0票数 81

有没有办法配置log4j,让它向不同的附加器输出不同级别的日志记录?

我正在尝试设置多个日志文件。主日志文件将捕获所有类的所有信息和以上消息。(在开发中,它将捕获所有调试及以上消息,并跟踪特定类。)

那么,我想要一个单独的日志文件。该日志文件将捕获特定类子集的所有调试消息,并忽略任何其他类的所有消息。

有没有办法得到我想要的东西?

EN

回答 4

Stack Overflow用户

发布于 2009-04-08 02:55:03

这应该可以让你开始:

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
票数 71
EN

Stack Overflow用户

发布于 2009-04-08 17:57:27

也许是这样的?

<!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>

因此,所有info消息都写入server.log;相比之下,foo.log只包含com.example.foo消息,包括调试级消息。

票数 26
EN

Stack Overflow用户

发布于 2009-05-06 14:03:21

我有一个问题,但有一个转折-我试图将不同的内容记录到不同的文件中。我有一个LowLevel调试日志和一个HighLevel用户日志的信息。我希望LowLevel只指向一个文件,而HighLevel同时指向一个文件和一个syslogd。

我的解决方案是配置3个附加器,然后像这样设置日志:

log4j.threshold=ALL
log4j.rootLogger=,LowLogger

log4j.logger.HighLevel=ALL,Syslog,HighLogger
log4j.additivity.HighLevel=false

我很难弄清楚的是,“log4j.logger”可能会列出多个附加器。我试着一行一行地做。

希望这能在某一时刻对某人有所帮助!

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/728295

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档