Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Log4j以编程方式为并行运行创建新文件_Java_Log4j - Fatal编程技术网

Java Log4j以编程方式为并行运行创建新文件

Java Log4j以编程方式为并行运行创建新文件,java,log4j,Java,Log4j,我有点不知所措。每次进程运行时,我都试图创建一个新的日志文件。这个过程可以并行运行。当它这样做时,我想为每个进程创建一个单独的日志,并将日志写入各自的日志文件。我正在努力解决这个问题,因为无论创建的“最后一个”appender是什么,都是文件写入的地方。我不知道如何解决这个问题。说够了,这里是log4j.properties文件 log4j.rootLogger=DEBUG, CONSOLE log4j.appender.myappender.encoding=UTF-8 log4j.appe

我有点不知所措。每次进程运行时,我都试图创建一个新的日志文件。这个过程可以并行运行。当它这样做时,我想为每个进程创建一个单独的日志,并将日志写入各自的日志文件。我正在努力解决这个问题,因为无论创建的“最后一个”appender是什么,都是文件写入的地方。我不知道如何解决这个问题。说够了,这里是log4j.properties文件

log4j.rootLogger=DEBUG, CONSOLE

log4j.appender.myappender.encoding=UTF-8
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%-5p %x %c - %m%n

# LOGFILE is set to be a File appender using a PatternLayout.
log4j.appender.LOGFILE=org.apache.log4j.FileAppender
log4j.appender.LOGFILE.Append=false
log4j.appender.LOGFILE.Threshold=DEBUG
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern=%-5p %x %c - %m%n
还有我正在使用的代码

    Logger rootLogger = Logger.getRootLogger();
    Enumeration appenders = rootLogger.getAllAppenders();
    FileAppender fa = null;
    while(appenders.hasMoreElements())
    {
        Appender currAppender = (Appender) appenders.nextElement();
        if(currAppender instanceof FileAppender)
        {
            fa = (FileAppender) currAppender;
        }
    }
    if(fa != null)
    {
        fa.setFile(logFileName);
        fa.activateOptions();
    }
    else
    {
        log.info("No File Appender found");
    }
*更新

所以我现在做的是运行Quartz。Quartz有一个作业,可以与不同的参数同时调用。我希望每个单独的作业运行都有自己的日志文件,即使它们都调用同一个类

非常感谢您的帮助。
谢谢

我猜最后一个appender只会被写入,因为您只定义了一个appender

因此,当您更改appender写入的文件时,实际上是在更改唯一appender的配置

我要做的是以编程方式创建一个新的appender(而不是使用log4j.xml/.properties)并设置它写入的文件