【问题标题】:java.util.logging.Logger doesn't write in the log file on Linuxjava.util.logging.Logger 不会写入 Linux 上的日志文件
【发布时间】:2017-10-12 07:24:42
【问题描述】:

我正在研究的是一个组件程序,它应该在 Linux 服务器 (CentOS7) 上运行。我使用 java.util.logging.Logger 及其 FileHandler 来创建日志文件并附加日志。

它在 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 "....";
}

【问题讨论】:

  • 您可以尝试将日志文件写入同步挂载吗?也许是一些操作系统缓存。
  • 谢谢,但我不明白你的意思
  • 使用异步挂载,操作系统不会立即将更改写入文件,而是将它们保存在内存中。以同步方式挂载的分区当然会慢一些。
  • 日志文件将创建在与组件运行相同的目录中。所以我认为这与安装无关。

标签: java logging


【解决方案1】:

为了进行测试,请将您的文件名更改为 "component%u.log"。您可能会尝试为同一个文件打开多个文件处理程序,具体取决于此代码的运行方式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-23
    • 2014-05-16
    • 1970-01-01
    • 1970-01-01
    • 2018-02-03
    • 2015-11-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多