java - 使用记录器创建文件

标签 java java-8

我正在特定路径中创建一个.log文件,但是我有一个问题,创建一个静态类并且每次我调用writing方法就像创建一个新的.log文件一样,注册表必须始终保留在同一个文件上。

这是测试代码:

import java.io.IOException;
import java.util.logging.FileHandler;
import java.util.logging.Logger;
import java.util.logging.SimpleFormatter;

public class Utils {

    public static void escribirLog(String rutaArchivo, String mensaje) {

        Logger logger = Logger.getLogger("MyLog");
        FileHandler fh;

        try {

            fh = new FileHandler(rutaArchivo);
            logger.addHandler(fh);

            SimpleFormatter formatter = new SimpleFormatter();
            fh.setFormatter(formatter);

            logger.info(mensaje);

        } catch (SecurityException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static void main(String... args){
        for(int i=1;i<6;i++){
            escribirLog("C:\\rutaLog\\archivo.log", "MensajePrueba"+i);
        }
    }
}

enter image description here

如何才能始终将日志写入同一个文件?

最佳答案

您需要构造一个启用附加选项的 FileHandler,以附加到现有日志文件。

在构建 fileHandler 的行上,将其更改为

    new FileHandler(fileName)

    new FileHandler(fileName, true)

这利用了 this constructor它告诉 FileHandler 追加到文件中。

关于java - 使用记录器创建文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45947146/

相关文章:

java - 访问相机应用程序中的硬件按钮

java - 我可以启动一个 Eden 空间如此之大的 JVM,它运行到完成而没有任何 GC。假设我有一堆空闲内存

java - 将 Java 8 Stream 与 ObjectMapper readValue 方法结合使用

java - 从请求中获取zoneID以将请求日期和时间转换为java 8中的UTC格式

java - 使用netty高速发送消息时出现OOM异常

java - MapReduce 迭代值以进行 tf-idf 计算

Java XMLType 文件修改

java - 在映射键集流上应用带有 anyMatch() 的谓词,并在谓词为假时返回一些结果

java - 如何配置 Spring Cloud Stream 中函数的绑定(bind),以将其输入绑定(bind)到 Web 端点并将其输出绑定(bind)到 Kafka 主题

java断言无一异常(exception)