我在我的java项目中创建了多个日志文件,并且该代码工作正常。我的代码如下给予:具有多个文件的Java log4J,需要从日志文件中删除实例名称
# Root logger option
log=../logs
log4j.rootLogger=INFO, file
log4j.logger.normalFile=DEBUG, fileAppender
log4j.logger.reportFile=DEBUG, reportAppender
log4j.additivity.normalFile=false
log4j.additivity.reportFile=false
log4j.appender.fileAppender=org.apache.log4j.RollingFileAppender
log4j.appender.fileAppender.File=${log}/normalLOG.log
log4j.appender.fileAppender.MaxFileSize=1MB
log4j.appender.fileAppender.MaxBackupIndex=1
log4j.appender.fileAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.fileAppender.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1} - %m%n
log4j.appender.reportAppender=org.apache.log4j.RollingFileAppender
log4j.appender.reportAppender.File=${log}/reportLOG.log
log4j.appender.reportAppender.MaxFileSize=1MB
log4j.appender.reportAppender.MaxBackupIndex=1
log4j.appender.reportAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.reportAppender.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1} - %m%n
当我检查我的日志文件,我得到的东西输出如下:
2016-07-30 12:17:44 INFO normalFile- Reading from C:\
二零一六年七月三十零日12点17分44秒INFO normalFile-加工文件 2016-07-30 12:17:48 INFO normalFile-添加新记录
取代日志实例(normalFile)名称,我需要将我的工作类名称放在日志文件中。
如果我在getLogger方法中传递我的类名,它将如何识别我的日志文件名。例如,我必须正确调试normalfile.log中的日志和report.log中的错误日志。 – Andy
@Andy阅读log4j手册了解如何工作。Log4j将遍历一棵树来查找与记录器名称匹配的记录器。因此,使用my.app.className类创建的记录器(在java代码中)将与名为“my.app”的config中定义的记录器相匹配。如果没有这样的记录器,它会通过rootLogger。如果您想要将不同的LogLevel过滤到不同的文件,则需要使用过滤器。 – Fildor
@Andy如果我没有记错,[Filters](https://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/varia/LevelMatchFilter.html)需要通过xml配置进行配置。它们在属性配置中不可用。 – Fildor