使用log4j的多个日志文件[英] Multiple log files with log4j

本文是小编为大家收集整理的关于使用log4j的多个日志文件的处理/解决方法,可以参考本文帮助大家快速定位并解决问题,中文翻译不准确的可切换到English标签页查看源文。

问题描述

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

这是有可能使用log4j或其他API的? 我该怎么办?

如果您认为有趣的话,我会编辑问题并提出代码,但我认为这是不值得的,它们仍然是非常基础的.

预先感谢.

推荐答案

cource,使用不同 互联网的示例:

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")

其他推荐答案

log4j为记录仪和附录提供了.这样做的方法是为您想要的每个文件提供一个appender.他们设置了一套适当的记录仪,该记录器指向适当的appender.通常使用软件包名称设置记录器.如果这对您有用,则包装X中的代码转到文件y,只需执行此操作即可.否则,每个输出文件创建记录仪,并让代码选择适当的记录器.您也可以拥有登录器并将信息发送给多个附录,因此您可以在适当的情况下进行设置.

有关如何设置此设置的示例,请参见Korifey的帖子.

本文地址:https://www.itbaoku.cn/post/1574866.html

问题描述

I am creating a solution for my application log, which have various types of logging (user, application, etc...), wanted to save each type of log in a separate file.

This is possible with log4j or some other API? How could I do that?

If you deem interesting, I edit the question and put the codes, but I do not think it's worth, they are still very basic.

Thanks in advance.

推荐答案

Of cource, use different FileAppenders Example from internet:

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 

Now you can log to admin.log Logger.getLogger("com.vaannila.admin").log("To admin log") and to report log Logger.getLogger("com.vaannila.report").log("To report log")

其他推荐答案

Log4j provides for Loggers and Appenders. The way to do this is to have an Appender for each file you want. They set up an appropriate set of Loggers that point to the appropriate Appender(s). Loggers are usually set up using package names. If this will work for you, code in package x goes to file y, just do that. Otherwise, create Loggers per output file and have the code choose the appropriate logger. You can also have Loggers and send the information to multiple Appenders, so you can set these up as appropriate.

See korifey's post for an example of how to set this up.