2017-10-12 40 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"。您可能正尝试将多个文件处理程序打开到同一文件,具体取决于此代码的运行方式。