这是我的log4j.properties文件。
log4j.rootLogger=DEBUG, stdout, file
# Redirect log messages to console
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
# Redirect log messages to a log file
log4j.appender.file=org.apache.log4j.RollingFileAppender
#outputs to Tomcat home
log4j.appender.file.File=${catalina.home}/logs/myapp.log
log4j.appender.file.MaxFileSize=5MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p
%c {1}:%L - %m%n
这是加载与框架等相关的一堆日志。
我试图把
log4j.rootLogger=DEBUG only to load only my logs.
我希望我的日志文件只包含我的项目日志。我应该在哪里改变?
我记录我的陈述的方式是
private Logger logger = Logger.getLogger(MyClass.class);
logger.debug("bla bla");
答案 0 :(得分:0)
您应根据应用程序包名称配置logger
。
假设您的应用程序包名称为test.example
,然后在log4j.properties
-
log4j.logger.test.example = DEBUG, stdout, file
log4j.additivity.test.example = false
它将在test.example
包中以及子包中的类中启用调试日志。
要删除与框架相关的日志,请将rootLogger
日志级别更改为ERROR
或WARN
-
log4j.rootLogger=ERROR, stdout, file
它只显示与上面的包test.example
及其子包中不存在的框架类或类相关的错误。
答案 1 :(得分:-1)
log4j.rootLogger=INFO,myproject
#My logger option
log4j.logger.com.myproject=ERROR
log4j.appender.myproject=org.apache.log4j.DailyRollingFileAppender
log4j.appender.myprojectapp.File=${catalina.home}/logs/myproject.log
log4j.appender.myproject.DatePattern='.'yyyy-MM-dd
log4j.appender.myproject.layout=org.apache.log4j.PatternLayout
log4j.appender.myproject.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L -%M - %m%n
log4j.appender.myproject.Threshold=DEBUG
#to not add myproject logs to other logger
log4j.additivity.com.myproject=false