java - log4j,国外日志记录

标签 java logging

当我的记录器设置为“全部”时,我看到我的代码未明确放置的消息。我正在使用我的一个 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/

相关文章:

java - log4j 将一些日志重定向到单独的文件

hadoop - 如何启用hdfs和映射的审核日志?

node.js - 在 node.js 中通过 ID 跟踪请求流

java - 正则表达式获取 1) 而不仅仅是数字

java - Runnable 不再在 Service 中运行以定期从 URL 检索

java - 使用 Jess 在本体中插入当前日期和时间

ios - 有什么方法可以在 iOS 中发生未捕获的异常后执行代码?

go - 如何在 golang 中使用 klog 级别的详细信息?

java - 删除 H2 数据而不删除表

java - 长时间运行的java进程的配置系统