2017-10-12 60 views
1

我正在處理的是一個應該在Linux服務器(CentOS7)上運行的組件程序。我使用java.util.logging.Logger及其FileHandler來創建日誌文件並追加日誌。java.util.logging.Logger不會在Linux上的日誌文件中寫入

它在eclipse上的Tomcat7本地服務器上工作得很好。但它只創建一個日誌文件,並且在Linux服務器上運行時不會寫入任何日誌。我也使組件的父目錄具有所有權限。但它沒有給出任何改變。

我很困惑的是,它肯定會創建一個日誌文件。我的代碼如下。

private final Logger logger = Logger.getAnonymousLogger(); 
private FileHandler fileHandler; 

public String run(){ 

    try { 
     fileHandler = new FileHandler("component.log", true); 
     SimpleFormatter formatter = new SimpleFormatter(); 
     fileHandler.setFormatter(formatter); 
     logger.addHandler(fileHandler); 

    } catch (Exception e) { 
     ..... 
    } 

    logger.info("==== component start ===="); 

    ............. 
    ............. 

    fileHandler.close(); 

    return "...."; 
} 
+1

你可以嘗試寫入日誌文件到同步裝載?也許這是一些操作系統緩存。 –

+0

謝謝,但我看不出你的意思 –

+1

使用異步掛載操作系統不會立即將更改寫入文件,而是將其保存在內存中。安裝爲同步的分區將盡管它當然較慢。 –

回答

0

要進行測試,請將文件名更改爲"component%u.log"。您可能正嘗試將多個文件處理程序打開到同一文件,具體取決於此代碼的運行方式。