簡體   English   中英

如何在項目級別配置log4j?

[英]How to configure log4j at project level?

我有一個java項目(注意: - 它不是一個Web項目)。我正在使用log4j來記錄消息。

目前我要遵循的步驟如下:

  • 在項目級別創建了log4j.properties文件。

  • 聲明Logger logger = Logger.getLogger(MyClass.class);

  • 然后使用 - > PropertyConfigurator.configure(“log4j.properties”)配置屬性;

  • 然后使用logger.debug(“message”); 記錄我的消息。

但我覺得這種方法的問題是我必須在我的項目的所有類中執行相同的操作,即從聲明Logger logger開始的所有步驟。

有沒有辦法讓我可以在我的項目中只在一個地方配置我的記錄器變量一次,然后只使用logger的聲明變量來記錄消息?

恕我直言你不應該有一個普通的記錄器用於正常的記錄目的。 每個類都應該通過Logger logger = Logger.getLogger(MyClass.class);創建自己的Logger logger = Logger.getLogger(MyClass.class); 當你有很少的類文件時,這似乎是一個開銷,但最好這樣做。
通過遵循這種記錄器模式,您可以靈活地在配置級別(在log4j.properties中)控制任何級別(整個應用程序或任何包或任何類)的日志記錄級別。

您可以在類路徑中提供log4j.properties ,log4j將自動獲取它。
PropertyConfigurator.configure("log4j.properties"); 不需要。

如果你想這樣做,你可以創建自己的記錄器類MyLogger使用static方法進行記錄,將實際調用包裝到記錄器。 然后,從您的各個類中,您可以調用MyLogger.log()MyLogger.debug()來記錄。

您可以通過以下方式進行配置

# Set root logger level to DEBUG and its only appender to A1.
log4j.rootLogger=DEBUG, A1

# A1 is set to be a ConsoleAppender.
log4j.appender.A1=org.apache.log4j.ConsoleAppender

# A1 uses PatternLayout.
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n

暫無
暫無

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

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