简体   繁体   English

使用log4j的多个日志文件

[英]Multiple log files with log4j

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? 这可以使用log4j或其他一些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: 对于cource,使用来自Internet的不同FileAppenders示例:

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") 现在您可以登录到admin.log Logger.getLogger("com.vaannila.admin").log("To admin log")并报告日志Logger.getLogger("com.vaannila.report").log("To report log")

Log4j provides for Loggers and Appenders. Log4j提供Loggers和Appender。 The way to do this is to have an Appender for each file you want. 这样做的方法是为你想要的每个文件都有一个Appender。 They set up an appropriate set of Loggers that point to the appropriate Appender(s). 他们设置了一组适当的记录器,指向适当的Appender。 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. 如果这对您有用,那么包x中的代码将转到文件y,就这样做。 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. 您还可以拥有记录器并将信息发送到多个Appender,以便您可以根据需要进行设置。

See korifey's post for an example of how to set this up. 有关如何进行设置的示例,请参阅korifey的帖子。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM