如何从log4j.properties文件中获取选择性日志

时间:2013-02-15 08:57:06

标签: java

我使用Eclipse创建了一个java项目。在该项目中,我使用了log4j.properties文件。在某些情况下,我在项目中使用了像

这样的语句
logger.debug("This is from debug");
logger.info("This is from Info");

我的日志文件是

# Set root category priority to INFO and its only appender to CONSOLE.
#log4j.rootCategory=INFO, CONSOLE
#log4j.rootCategory=INFO, CONSOLE, LOGFILE

# Set the enterprise logger category to FATAL and its only appender to CONSOLE.
log4j.logger.org.apache.axis.enterprise=DEBUG, stdout

# Root logger option
 log4j.rootLogger=DEBUG,stdout
 log4j.appender.stdout=org.apache.log4j.ConsoleAppender
 log4j.appender.stdout.Threshold=DEBUG
 log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
 log4j.appender.stdout.layout.ConversionPattern=%-4r [%t] %-5p %c %x – %m%n

现在,当我运行项目时,我得到了所有日志语句。对于前我在我的项目中使用Quartz计时器,所以当我运行程序时,我得到了Quartz的默认语句,如

16   [main] INFO  org.quartz.core.QuartzScheduler  ? Quartz Scheduler v.2.1.4 created.

但我只想要自定义日志语句,即我写的语句。 怎么弄这个?

3 个答案:

答案 0 :(得分:0)

您可以实现类级别记录器,如下所示

  

log4j.logger.package.classes.classOne = INFO,LOGFILE

确保删除其他log4j键(或注释),以便只记录您的

答案 1 :(得分:0)

您可以明确设置包和类的记录器,如下所示

log4j.logger.com.mycompany=INFO
log4j.logger.com.mycompany.MyClass=DEBUG

答案 2 :(得分:0)

如果您只想要自定义日志语句,请关闭rootLogger,并配置自定义日志记录,例如

log4j.rootLogger=OFF
log4j.logger.com.mycompany=DEBUG, CONSOLE