gpt4 book ai didi

java - 如何设置 log4j 属性以便每个线程输出到它自己的日志文件?

转载 作者:搜寻专家 更新时间:2023-10-30 21:08:03 25 4
gpt4 key购买 nike

我有一个线程类的多个实例在任何给定时间运行。我有 log4j 设置用于日志记录需求。

我需要一种设置 log4j 的方法,以便我的线程类的每个实例都将其日志输出到不同的日志文件中。

这是我所做的(伪代码)

public class doSomething extends Thread {

private Logger d_logger;

public doSomething(int id){
d_logger = Logger.getLogger("doSomething"+id);
String logFileName = "doSomething"+id+".log";

Properties prop = new Properties;
prop.setProperty("doSomething"+id,"DEBUG, WORKLOG");
prop.setProperty("log4j.appender.WORKLOG","org.apache.log4j.FileAppender");
prop.setProperty("log4j.appender.WORKLOG.File", logFileName);
prop.setProperty("log4j.appender.WORKLOG.layout","org.apache.log4j.PatternLayout");
prop.setProperty("log4j.appender.WORKLOG.layout.ConversionPattern","%d %c{1} - %m%n");
prop.setProperty("log4j.appender.WORKLOG.Threshold","INFO");

PropertyConfigurator.configure(prop);
}

public void run(){
d_logger.info("Starting to doSomething number" + id);
}

}

虽然上面为我实例化的每个线程创建了一个文件,但它不会向这些文件输出任何内容。任何帮助深表感谢。

最佳答案

它没有向文件输出任何内容,因为设置记录器的正确语法是:

prop.setProperty("log4j.logger.doSomething"+id,"DEBUG, WORKLOG");

关于java - 如何设置 log4j 属性以便每个线程输出到它自己的日志文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1172113/

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