Java log4J具有多个文件,需要从logfile中删除实例名称

时间:2016-08-03 07:47:08

标签: java log4j

我在我的java项目中创建了多个日志文件,并且该代码运行正常。我的代码如下:

    # 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:\

2016-07-30 12:17:44 INFO normalFile-处理文件 2016-07-30 12:17:48 INFO normalFile-新记录添加

我需要将工作类名称放在日志文件中,而不是日志实例( normalFile )名称。

3 个答案:

答案 0 :(得分:0)

您可以使用%C代替%c

来自Docu

  

C - 用于输出发出记录请求的调用者的完全限定类名。

但请注意,这会对效果产生巨大影响

另一种(可能更好)的可能性是改变配置,以便你获得具有相应类名的Loggers:

Logger myLogger = LogManager.getLogger(SomeClass.class);

但是你必须改变你的配置,直接将appender添加到根记录器或基于你的应用程序包的一些记录器。

假设您的应用程序使用包“my.application”:

的示例
log4j.logger.my.application=DEBUG, fileAppender

答案 1 :(得分:0)

这取决于您传递给LogManager.getLogger(String )方法的内容。无论你传递什么,它都会在日志中显示为记录器的名称。

如果你想在那里上课,只需传递课程名称或直接传授课程本身:

Logger myLogger = LogManager.getLogger(MyClass.class.getName());
// or better
Logger myLogger = LogManager.getLogger(MyClass.class);

另请注意,1中的%c{1}会导致只输出类名的最后一部分(即没有包)。仅使用%c输出完全限定的类名。

答案 2 :(得分:0)

阅读文档,您可以将转换模式所在的行更改为

log4j.appender.fileAppender.layout.ConversionPattern =%d {yyyy-MM-dd HH:mm:ss}%-5p%C {1} - %m%n

因此,将%c更改为%C即可获得所需内容。无论如何,您可以阅读文档以获取更多信息。log docs