簡體   English   中英

如何設置特定類和包的日志級別?

[英]How to set log level for specific class and package?

這是我的log4j內容,位於.properties文件中

logging.rootLogger=@DEBUG_LEVEL@, stdout, rollingFile, smtp
##logging.appender.stdout.Threshold=@DEBUG_LEVEL@
logging.appender.stdout=org.apache.log4j.ConsoleAppender
logging.appender.stdout.layout=org.apache.log4j.PatternLayout
logging.appender.stdout.layout.ConversionPattern=%d %-5p %c [%M:%L] %m%n

@ DEBUG_LEVEL @這是在單獨的“ appenv.bash”文件中設置的,對於不同的環境,它的設置是不同的。 在生產中將其設置為ERROR,我想在特定類中為一種方法使用INFO。 作為此信息,DEBUG將不會在生產環境中顯示。

如何在一個包中為一個特定類將日志級別設置為INFO?

您在這里聲明一個記錄器,即rootLogger。 它是所有記錄器的“父級”,因此,如果要進行細粒度的配置,則必須聲明一個更特定的記錄器。

以下行為包com.foo.bar下的所有類創建了一個記錄器:

log4j.logger.com.foo=WARN, stdout

您的班級必須以這種方式實例化記錄器:

Logger logger = Logger.getLogger(MyClass.class.getCanonicalName());

但是您可以在此處放置任何字符串,例如:

log4j.logger.onlyoneclasswilluseit=WARN, stdout

並以這種方式獲取:

Logger logger = Logger.getLogger("onlyoneclasswilluseit");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM