使用log4j的多个日志文件

时间:2011-12-12 12:19:57

标签: java log4j

我正在为我的应用程序日志创建一个解决方案,它有各种类型的日志记录(用户,应用程序等...),希望将每种类型的日志保存在单独的文件中。

这可以使用log4j或其他一些API吗? 我怎么能这样做?

如果您认为有趣,我会编辑问题并输入代码,但我认为它不值得,它们仍然非常基础。

提前致谢。

2 个答案:

答案 0 :(得分:23)

对于cource,请使用不同的FileAppender 来自互联网的例子:

log4j.rootLogger=DEBUG

# AdminFileAppender - used to log messages in the admin.log file.
log4j.appender.AdminFileAppender=org.apache.log4j.FileAppender

log4j.appender.AdminFileAppender.File=admin.log

log4j.appender.AdminFileAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.AdminFileAppender.layout.ConversionPattern= %-4r [%t] %-5p %c %x - %m%n

# ReportFileAppender - used to log messages in the report.log file.
log4j.appender.ReportFileAppender=org.apache.log4j.FileAppender

log4j.appender.ReportFileAppender.File=report.log

log4j.appender.ReportFileAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.ReportFileAppender.layout.ConversionPattern= %-4r [%t] %-5p %c %x - %m%n

log4j.logger.com.vaannila.admin=WARN,AdminFileAppender 
log4j.logger.com.vaannila.report=DEBUG,ReportFileAppender 

现在,您可以登录admin.log Logger.getLogger("com.vaannila.admin").log("To admin log")并报告日志Logger.getLogger("com.vaannila.report").log("To report log")

答案 1 :(得分:2)

Log4j提供Loggers和Appender。这样做的方法是为你想要的每个文件都有一个Appender。他们设置了一组适当的记录器,指向适当的Appender。记录器通常使用包名称进行设置。如果这对您有用,那么包x中的代码将转到文件y,就这样做。否则,为每个输出文件创建记录器,并让代码选择适当的记录器。您还可以拥有记录器并将信息发送给多个Appender,以便您可以根据需要进行设置。

请参阅korifey的帖子,了解如何进行设置。