使用log4j的多个日志文件

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

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

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

提前致谢。

对于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 

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

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

有关如何进行设置的示例,请参阅korifey的post。