gpt4 book ai didi

java - Log4j 记录到单独的文件

转载 作者:行者123 更新时间:2023-11-30 04:58:59 24 4
gpt4 key购买 nike

我有一个应用程序监听特定端口来执行其任务。该应用程序可以通过指定不同的实例在多个实例上运行参数中的端口。

MyApp-1211.bat 包含

java MyApp 1211

MyApp-1311.bat 包含

java MyApp 1311

MyApp-1411.bat 包含

java MyApp 1411

此应用程序记录到一个文件。问题是所有三个实例都记录到单个文件 myApp.log 中。有没有办法告诉 log4j 使用不同的日志文件?像:

myApp-port1211.log  
myApp-port1311.log
myApp-port1411.log

最佳答案

当然可以。一种方法是创建多个配置文件(log4j.xml/log4j.properties) - 每个端口分别处理一个。加载配置文件后,您可以根据当前端口号选择正确的配置文件:

PropertyConfigurator.configure("log4j-" + port + ".properties");

相应地创建配置文件:log4j-1211.propertieslog4j-1311.properties、...

另一种方法是通过 Java 代码在运行时配置文件日志记录:

String logFilename = "./myApp-port" + port + ".log";
Layout layout = new PatternLayout("%d{ISO8601} %-5p [%t] %c{1}: %m%n");
FileAppender fileAppender = new FileAppender(layout, logFilename, false);
fileAppender.setThreshold(Level.DEBUG);
Logger.getRootLogger().addAppender(fileAppender);

关于java - Log4j 记录到单独的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7565756/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com