2015-02-24 141 views
0

我在絕對新log4j我有以下問題。爲什麼我在嘗試使用log4j時遇到此錯誤?

到一個名爲梅勒類,我宣佈我的log4j 記錄儀對象,以這樣的方式

private static final org.apache.log4j.Logger logger = Logger.getLogger(Mailer.class); 

,然後我已經把記錄到類的構造函數(以測試記錄器工作正常),以這樣的方式

public Mailer() { 
    super(); 
    logger.debug("LOGGER IN ACTION !!! INTO Mailer CONSTRUCTOR !!!"); 
    setTimeoper(); 
} 

的問題是,當進入類construcor記錄器似乎不工作正常,不打印我的消息,而是它我得到這個logge R錯誤(進入控制檯):

log4j:WARN No appenders could be found for logger (utility.Mailer). 
log4j:WARN Please initialize the log4j system properly. 

到我的項目我有一個配置包,其中包含了log4j.properties文件有一個簡約的內容說,以顯示DEBUG log4j的statment成控制檯:

限定控制檯附加器

log4j.appender.consoleAppender = org.apache.log4j.ConsoleAppender

# now define the layout for the appender 
log4j.appender.consoleAppender.layout = org.apache.log4j.PatternLayout 
log4j.appender.consoleAppender.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n 

# now map our console appender as a root logger, means all log messages will go to this appender 
log4j.rootLogger = DEBUG, consoleAppender 

我認爲這是正確的,但我從來沒有指定log4j的必須這樣做(我不知道該怎麼和我必須做)什麼我

我失蹤?我該如何解決這個問題並正確配置log4j?

TNX

+3

如果未設置明確的位置,'log4j.properties'必須位於類路徑的根目錄下。 – 2015-02-24 16:21:54

+0

@BoristheSpider好吧,如果我想把它放入配置包,我該如何指定它? – AndreaNobili 2015-02-24 16:24:18

回答

2

log4j的documentation狀態

確切的默認初始化算法定義如下:

  1. 設置log4j.defaultInitOverride系統屬性爲任何其他值,則 「假」會導致log4j跳過默認初始化程序 (此過程)。
  2. 將資源字符串變量設置爲log4j.configuration系統屬性的值。指定 默認初始化文件的首選方式是通過log4j.configuration系統 屬性。 如果定義的系統屬性log4j.configuration不是 ,則將字符串變量資源設置爲其默認值 「log4j.properties」
  3. 嘗試將資源變量轉換爲URL。
  4. 如果資源變量無法轉換爲URL(例如,由於MalformedURLException),請通過調用 org.apache.log4j.helpers.Loader.getResource(resource,Logger.class)從 類路徑中搜索資源) 它返回一個URL。請注意,字符串「log4j.properties」 構成了一個格式不正確的URL。
  5. 如果找不到URL,請中止默認初始化。 否則,從URL配置log4j。

既然你沒有指定這樣的屬性是,log4j將尋找一個log4j.properties在classpath的根目錄。你的屬性文件是config,所以log4j找不到它。請移動它或提供系統屬性及其位置。

+0

如果我把它放在classpath的根目錄下工作的很好,但是我可以在log4j.properties文件進入配置包的情況下使用它嗎? – AndreaNobili 2015-02-24 16:28:14

+0

@AndreaNobili請參閱報價中的第2點以及其後的段落。 – 2015-02-24 16:28:59

+0

我讀過它,但我不知道它究竟如何。你能告訴我一個代碼片段嗎? – AndreaNobili 2015-02-24 16:36:25

相關問題