2015-04-24 96 views
0

我想記錄的東西在maven項目中的文件。 我發現「HOWTO」在這裏: Where does the slf4j log file get saved?slf4j日誌文件丟失

但它不工作(我無法找到日誌文件)由於某種原因,什麼是我的錯?

這裏是我的pom.xml

<!-- Logger --> 
    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-api</artifactId> 
     <version>1.7.12</version> 
    </dependency> 
    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-log4j12</artifactId> 
     <version>1.7.12</version> 
    </dependency> 

這裏是我的log4j.properties

log4j.rootLogger=DEBUG, STDOUT, file 

log4j.appender.STDOUT=org.apache.log4j.ConsoleAppender 
log4j.appender.STDOUT.layout=org.apache.log4j.PatternLayout 
log4j.appender.STDOUT.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n 

log4j.appender.file=org.apache.log4j.RollingFileAppender 
log4j.appender.file.File=mylogs.log 
log4j.appender.file.layout=org.apache.log4j.PatternLayout 
log4j.appender.file.layout.ConversionPattern=%d{dd-MM-yyyy HH:mm:ss} %-5p %c{1}:%L - %m%nF 

這裏是我的應用程序:

import org.slf4j.Logger; 
import org.slf4j.LoggerFactory; 

public class App { 

    // Log 
    private static final Logger log = LoggerFactory.getLogger(App.class); 

    public static void main(String[] args) { 
     log.info("App started"); 

     Worker worker = new Worker(); 
     worker.doWork(); 
     log.debug("worker finished job"); 

     log.debug("Main ends here"); 

    } 
} 
+2

哪個目錄是log4j.properties文件?另外,請檢查類路徑。它是否包含'jcl-over-slf4j'和'commons-logging'?如果答案是肯定的,那麼如果必須的話,使用排除來移除'commons-logging'。我的經驗是,這兩個圖書館並不能很好地發揮作用,因此我沒有看到日誌文件。 – user944849

+0

'log4j.properties'位於'src \ main \ resources',有'commons-logging'並且沒有'jcl-over-slf4j'。刪除'commons-logging'進行測試,仍然沒有日誌文件:( –

+0

你看到控制檯中的日誌嗎? – yozh

回答

1

您的項目可能包含包含log4j.properties/xml文件的依賴。這可以覆蓋您提供的屬性。爲了檢查這一點,首先,嘗試使用log4j配置文件的不同名稱:將其重命名爲app-log4j.properties並在啓動時指定它:-Dlog4j.configuration=app-log4j.properties。如果確實有效,那麼確實存在衝突。最好的辦法是從依賴關係中刪除log4j.properties,但如果這是不可能的(f.e. 3d-party lib),那麼考慮將上面概述的log4j配置文件名改爲永久。

一般而言,mylogs.log應該在您啓動程序的目錄中。例如,如果它是從IDE(例如IDEA)啓動的,則應在項目目錄中創建日誌文件。如果你從target/classes的命令行自己完成,日誌文件將分別寫入該目錄。

+0

嗯,我很明白,我甚至搜索過「我的計算機」這個日誌文件。沒有結果... –