java - java 中的 mylogger 类

标签 java logging java.util.logging

我想写入文件中出现的异常。我正在使用 mylogger 类。问题是,每次我运行应用程序并捕获异常时,其他异常都会从文件中删除。

这是 mylogger 类

public class MyLogger {

static private FileHandler fileTxt;

static private SimpleFormatter formatterTxt;

private Logger logger;

public void setup() throws IOException {
    logger = Logger.getLogger(Logger.GLOBAL_LOGGER_NAME);

    logger.setLevel(Level.INFO);

    fileTxt = new FileHandler("Logging.txt");

    // create a TXT formatter
    formatterTxt = new SimpleFormatter();
    fileTxt.setFormatter(formatterTxt);

    logger.addHandler(fileTxt);
}

public void log(Exception e) {
    logger.info("test");
}

public void logClientReporting(String string) {
    // TODO Auto-generated method stub
    logger.info(string);
}

public void logSocket(String string) {
    // TODO Auto-generated method stub
    logger.info(string);
}
}

我在主类中调用设置。

这是我调用日志方法的方法:

catch (Exception e) {
        // TODO: handle exception
        System.err.println("JSON Exception in getAvailableDesings");
        logger.logSocket(e.toString());
    }

最佳答案

我认为问题出在初始化 FileHandler 所使用的构造函数中。 FileHandler 有多个构造函数,其中一个采用第二个参数,一个名为append 的 boolean 值,该参数应该为 true 才能追加新日志而不是覆盖它们。所以应该是:

fileTxt = new FileHandler("Logging.txt", true);

如果可以的话,我想快速建议一下,使用日志库并且不要尝试重写东西。我推荐 apache log4j2 或 slf4j,它为您提供了很好的日志记录选项。您可以定义模式、打印格式(例如日志开头的日期)、时间/文件大小限制、何时再次滚动文件以及许多其他选项。

关于java - java 中的 mylogger 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32092103/

相关文章:

Python-如何检查文件是否被另一个应用程序使用?

java - 为什么 jExcelAPI 在 stderr 中转储警告以及如何停止这种行为?

java - 如何在 Spring Boot 中关闭 "NioEndPoint"日志记录?

c++ - 使用 liblttng 在 C++ 中自动插入跟踪点语句

java - XMLFormatter 中的 getTail() 方法如何工作?

java - 使用 java.util.logging API 将不同级别的日志记录到单独的文件

java - 找不到符号,符号: Method setDate(Date) in Netbeans

java - 将 Swing 应用程序迁移到 Java 8 会导致 java.lang.ClassNotFoundException : org. jdesktop.swingworker.SwingWorker

java - 同步异步通信

java - 在java中合并数组