Java log4j 类别

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/906292/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-11 20:54:18  来源:igfitidea点击:

log4j category

javalogginglog4j

提问by Nuno Furtado

I have the following on my log4j.properties

我的 log4j.properties 上有以下内容

log4j.rootLogger = debug, stdout, fileLog

log4j.appender.stdout = org.apache.log4j.ConsoleAppender

log4j.appender.fileLog = org.apache.log4j.RollingFileAppender
log4j.appender.fileLog.File = C:/logs/services.log
log4j.appender.fileLog.MaxFileSize = 256MB
log4j.appender.fileLog.MaxBackupIndex = 32
#Category: ConsultaDados
log4j.category.ConsultaDados=ConsultaDados
log4j.appender.ConsultaDados=org.apache.log4j.DailyRollingFileAppender
log4j.appender.ConsultaDados.layout=org.apache.log4j.PatternLayout
log4j.appender.ConsultaDados.layout.ConversionPattern={%t} %d - [%p] %c: %m %n
log4j.appender.ConsultaDados.file=C:/logs/consulta.log
log4j.appender.ConsultaDados.DatePattern='.' yyyy-MM-dd-HH-mm

And im creating my logger with :

我用以下方法创建我的记录器:

myLogger = Logger.getLogger("ConsultaDados");

But this doesnt log my calls to the file. they get thrown into the rootLogger

但这不会记录我对文件的调用。他们被扔进了 rootLogger

Any ideas?

有任何想法吗?

采纳答案by haotten

Just to finish this thread, the real issue was that the first value on your category line should have been a log level. So, as you correctly discovered, changing :

为了完成这个线程,真正的问题是类别行上的第一个值应该是日志级别。因此,正如您正确发现的那样,更改:

log4j.category.ConsultaDados=ConsultaDados

log4j.category.ConsultaDados=ConsultaDados

to

log4j.category.ConsultaDados=info,ConsultaDados

log4j.category.ConsultaDados=info,ConsultaDados

worked properly. As an FYI, you could have also changed the line to

工作正常。作为仅供参考,您也可以将行更改为

log4j.category.ConsultaDados=,ConsultaDados

log4j.category.ConsultaDados=,ConsultaDados

which would have caused you to inherit the logging level from the root logger.

这会导致您从根记录器继承日志记录级别。

回答by adrian.tarau

First, your category is not mapped to an appender, second ConsultaDadosEORIdoesn't match any category.

首先,您的类别未映射到附加程序,第二个ConsultaDadosEORI不匹配任何类别。

Here is a sample :

这是一个示例:

log4j.appender.YOUR_APPENDER=org.apache.log4j.RollingFileAppender
log4j.appender.YOUR_APPENDER.File=${SYSTEM_PROPEY_WITH_LOGGER_FOLDER}/log_file.log
log4j.appender.YOUR_APPENDER.Append=true
log4j.appender.YOUR_APPENDER.MaxFileSize=20MB
log4j.appender.YOUR_APPENDER.MaxBackupIndex=2
log4j.appender.YOUR_APPENDER.layout=org.apache.log4j.PatternLayout
log4j.appender.YOUR_APPENDER.layout.ConversionPattern=%d [%t] %p %c - %m %n
log4j.category.**YOUR_PACKAGE**=**INFO,YOUR_APPENDER** 
log4j.additivity.**YOUR_PACKAGE**=true or false