2014-07-23 102 views
2

我在IntelliJ IDEA 13中構建了一個簡單的應用程序,似乎無法弄清楚如何讓log4j工作。我的應用程序是一個簡單的演示程序,用於確保我可以構建一些功能,它所做的只是乘以兩個隨機數字,並使用apache tomcat將它放在本地主機上,我可以通過瀏覽器訪問它。在IntelliJ IDEA中設置Log4J 13

下面是類代碼:

package Sample; 

log4j-api-2.0.jar; 
log4j-core-2.0.jar; 

import org.apache.log4j.Logger; 
import org.apache.log4j.LogManager; 


public class HelloWorld { 

    public static double getMessage() { 
     return Math.random()* Math.random(); 

    } 

    private static Logger log = LogManager.getRootLogger(); 

    log.debug("Debugging Message"); 
    log.info("Informational message"); 
    log.warn("Warning Message"); 
    System.in.read(); 

} 

我得到在進口線和jar文件行錯誤「類或接口預期」,所以我不認爲我已經放在相應的文件在正確的目錄中。這也導致其餘的記錄行(來自私有靜態記錄器...)產生錯誤。

+0

你應該刪除這兩行文件名,它們是不必要的,可能會導致語法錯誤。 –

回答

4

下面是不是有效的Java:

log4j-api-2.0.jar; 
log4j-core-2.0.jar; 

需要import線,例如,

import org.apache.log4j.Logger; 
import org.apache.log4j.LogManager; 

2..jar文件必須與您的項目相關聯。

您可以:

  • 右鍵單擊「外部庫」部分,並添加他們的方式,或...
  • 使用Maven並將其添加爲項目的依賴,或...
  • 使用一些其他的依賴管理和/或構建工具,如螞蟻+艾維,搖籃等

您需要的日誌記錄語句移動到一個地方,代碼是有效的,就像在一個方法中一樣:

package sample; 

import org.apache.log4j.Logger; 
import org.apache.log4j.LogManager; 

public class HelloWorld { 
    private static final Logger log = LogManager.getRootLogger(); 

    public static void main(String[] args) { 
     log.debug("Debugging Message"); 
     log.info("Informational message"); 
     log.warn("Warning Message"); 
    }  
} 
+0

我在教程中建議的web/web-inf/lib目錄中有文件,我查了一下設置log4j,但是現在我刪除了兩行,並且仍然在導入語句'unused import'和'無法解析符號apache'。這是否意味着它沒有找到我放置它們的jar文件? IntelliJ不會讓我將.jar文件移動到外部目錄,只有web-inf文件 – user3748486

+0

@ user3748486它們也需要部署,除非您的容器也使用Log4J。把它們放在你的項目的WEB-INF/lib目前是好的,但你仍然需要將這些jar添加到你的模塊的依賴關係中。請注意,您可以通過從命令行或操作系統的文件瀏覽器等位置移動它們來找到它們。 –

+0

一旦我將jar文件添加爲依賴關係,其餘的工作,即log.debug ...和接下來的3行適當的命令? – user3748486