我有一个程序,一旦启动,它将多次执行一个流程(涉及的几个类)-每次都在不同的线程中进行。流程是相同的-每次调用时,发送给它的参数都是不同的。
每个流将在其自己的线程上执行。
我希望能够为每个线程定义一个文件追加器(本质上是文件日志)-因此,一旦流程开始,它就会以编程方式创建自己的日志文件并将其写入。
搜索它,但找不到简单的解决方案
你能帮我吗?
钽
最佳答案
您可以通过编程方式执行此操作。例如。:
class Task implements Runnable {
private final String path;
private final String name;
public Task(String path, String name) {
this.path = path;
this.name = name;
}
public void run() {
// Create file appender
FileAppender appender = new FileAppender();
appender.setFile(path);
appender.setLayout(new PatternLayout("%d [%t] %-5p %c - %m%n"));
appender.activateOptions();
// Get logger and add appender
Logger logger = Logger.getLogger(name);
logger.setAdditivity(false);
logger.addAppender(appender);
// Task
logger.info("Hello World!");
// Remove appender
logger.removeAppender(appender);
}
}
public static void main(String[] args) {
new Thread(new Task("logs/A.log", "com.company.A")).start();
new Thread(new Task("logs/B.log", "com.company.B")).start();
}