当我的记录器设置为“全部”时,我看到我的代码未明确放置的消息。我正在使用我的一个 friend 给我的 jar 来做一些事情(我怀疑他自己正在记录东西)
我只想记录我要求通过发出
记录的内容logger.info ("something clever"); command
下面是我的 log4j.properties
请指教。
# ***** Set root logger level to WARN and its two appenders to stdout and R.
log4j.rootLogger=all, R
# ***** R is set to be a RollingFileAppender.
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=log/something.log
# ***** Max file size is set to 100KB
log4j.appender.R.MaxFileSize=100KB
# ***** Keep one backup file
log4j.appender.R.MaxBackupIndex=1
# ***** R uses PatternLayout.
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
最佳答案
看看这个优秀的 log4j 备忘单:
基本上,您需要设置如下内容:
log4j.rootCategory=error, R
log4j.category.com.your.package=debug
或者,或者:
log4j.category.com.your.friends.package=error
根据需要替换包名称。
这些会使根记录器设置为错误(因此任何包 - 包括您可能使用的其他库,如 Hibernate、Spring 等)都不会记录任何低级别的内容(调试、信息、警告),但仅记录错误。
它还会将您的包(包括您的顶级包或多个包)设置为以调试级别登录,因此您的所有记录器都将正常登录。它还会将您 friend 的包设置为错误,因此不会输出任何内容。
如果你有一个通用的根包,就使用它。例如。如果您有包裹:
- com.example
- com.example.a
- com.example.a.aa
- com.example.b
- com.example.c.d
只要包含 com.example,它就会默认继承下面的包。
当然,您可以覆盖它,例如指定:
- com.example - 警告
- com.example.a.aa - 调试
或者类似的东西。请看这里的详细解释:
关于java - log4j,国外日志记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4236469/