使用spring mvc设置日志记录,希望仅将trace / debug限制为我的代码

时间:2011-11-27 20:39:25

标签: java spring logging log4j slf4j

我终于使用spring mvc设置了log4j,我的log4j属性看起来像:

# Direct log messages to stdout
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{ABSOLUTE} %5p %c{1}:%L - %m%n

# Root logger option
log4j.rootLogger=trace, stdout

现在我不想看到除我自己的代码之外的任何输出,有没有办法将所有日志消息限制到特定的命名空间?

当我投入生产时,我不希望记录任何跟踪/调试信息,我想我必须创建一个文件追加器但是我如何将日志消息限制为只有严重类型的日志消息/ catch或意外的事情?

1 个答案:

答案 0 :(得分:3)

例如(使用ConsoleAppeneder,但区别相同):

log4j.rootLogger=INFO, A1
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d [%t] %-5p %c - %m%n

log4j.logger.your.package.to.debug=DEBUG
log4j.logger.org.springframework.aop=DEBUG

默认情况下,此日志记录为INFO级别,your.package.to.debug和spring-aop软件包除外,这些软件包记录在DEBUG级别。混合和匹配级别和包,但需要。

我要警惕不要将INFO投入生产,除非你永远不需要调试任何东西 - 特别是在启动时,INFO非常重要。它还可用于提供一般系统信息。

此外,%L模式非常慢。适用于罕见的WARNING /等。日志,而不是正常的操作日志记录。