java - 在 SLF4j 中更改 Java 日志输出文件的名称

标签 java logging log4j slf4j

我正在使用 slf4j 来管理我的应用程序日志记录。

我想在配置log4j.properties后更改输出文件的名称。我的意思是,文件名是进入我的程序的一个参数,并且是可变的。我想从 java 更改此 slf4j 属性。

有谁知道可以吗?

提前致谢!

最佳答案

终于我解决了这个问题:

public void updateFichierLogNames(String warnFileName, String infoFileName, String errorFileName) {
        Properties props = new Properties(); 
    try { 
        InputStream configStream = getClass().getResourceAsStream( "/log4j.properties"); 
        props.load(configStream); 
        configStream.close(); 
    } catch (IOException e) { 
        System.out.println("Error: Cannot laod configuration file"); 
    } 

    props.setProperty("log4j.appender.infoFile.File", infoFileName); 
    props.setProperty("log4j.appender.warnFile.File", warnFileName); 
    props.setProperty("log4j.appender.errorFile.File", errorFileName); 

    LogManager.resetConfiguration(); 
    PropertyConfigurator.configure(props); 

    }
}

关于java - 在 SLF4j 中更改 Java 日志输出文件的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18693963/

相关文章:

java - 如何使用Ebean自动DDL生成定义mysql引擎或默认字符集

java - 抽象泛型类的集合,原始类型警告

google-app-engine - 云日志高级日志过滤器 : Find HTTP Requests >= Duration

java - 为什么(在某些情况下)即使禁用日志记录级别,logback 也会调用 toString() ?

java - 将log4j 1.2.14升级到2.12.1错误没有配置根记录器并且未创建日志文件

java - log4j2 中基于时间的触发策略

java - 如何测试 Spring Boot 处理程序拦截器

java - Java 随机数

logging - 创建一个中间件 Controller 以处理Dart中对Aqueduct的所有请求

java - 如何修复 Tomcat 中的 log4j 警告消息