2010-03-26 126 views
5

我使用log4j的程序是這樣的:log4j屬性文件:如何配置?

  1. 的.properties文件某處項目文件夾中的初始化方法,即只運行一次
  2. ,調用PropertyConfigurator.configure(「文件路徑」 )在每一個我們需要使用記錄儀方法
  3. 我們定義了一個靜態變量記錄和簡單地調用getLogger(類)

這是正確的嗎? 如果未定義初始化模塊,會發生什麼情況?我可以在哪裏放置「log4j.properties」文件,以便我根本不必調用propertyconfigurator.configure?如果這是不可能的,是否可以在每個使用記錄器的方法中調用PropertyConfigurator.configure(「path_to_file」)

回答

10

如果你把它放在類路徑的某個地方,Log4J會自動加載它。一個典型的地方是源(或資源)根目錄。這樣它也可以複製到你的jar的根目錄(如果你從你的類文件中創建一個)。

確切的詳細信息取決於您使用的構建系統。例如。在Maven的約定是把它放在src/main/resources

+0

@PéterTörök好吧,這是一個不同的問題,但是在一個短語中,默認的類路徑,不提供-classpath java選項,包含.jar文件的哪些文件夾? – EugeneP 2010-03-26 09:28:51

+0

@EugeneP剛剛在我的更新中介紹了這一點:-) – 2010-03-26 09:29:55

3

log4j的默認初始化過程記錄在log4j教程的this section中。這詳細解釋了log4j用於查找日誌記錄配置的步驟。

配置log4j最簡單的方法是將屬性文件放在某處,以允許它通過類加載器使用名稱「/log4j.properties」找到。還有其他一些方法可以使用,包括設置系統屬性,以編程方式加載屬性文件,甚至通過log4j API實例化Logger,Appender等。 (不是說後者是個好主意......)

(將log4j屬性文件放在Maven項目的「src/main/resources」中只是將文件導入到您的文件中的一種方法應用程序的類路徑根。)