Log4j 在管理任务中写入自己的日志文件

Log4j 在管理任务中写入自己的日志文件,log4j,dspace,Log4j,Dspace,我正在写一个策展任务,并且想从任务内部写入我自己的日志文件(比如:[dspace]/log/myCurationTask.log),而不是写入dspace.log) 如何使用尽可能多的标准DSpace过程来实现这一点?以下是log4j.properties文件: 您可以复制A1的配置(或定义自己的配置),将其命名为A4,并让特定包或类的日志也像这样发送到A4附加器 log4j.logger.org.dspace.etc.etc = INFO, A4 log4j.additivity.org.ds

我正在写一个策展任务,并且想从任务内部写入我自己的日志文件(比如:
[dspace]/log/myCurationTask.log
),而不是写入
dspace.log


如何使用尽可能多的标准DSpace过程来实现这一点?

以下是log4j.properties文件:

您可以复制A1的配置(或定义自己的配置),将其命名为A4,并让特定包或类的日志也像这样发送到A4附加器

log4j.logger.org.dspace.etc.etc = INFO, A4
log4j.additivity.org.dspace.etc.etc = false
在A1日志文件中指定日志文件的行如下:
log4j.appender.A1.file=${log.dir}/dspace.log

在java类中,您可以使用以下命令将文本发送到日志

import org.apache.log4j.Logger;

public class SomeClass {

    /**
     * log4j logger
     */
    private static final Logger log = Logger.getLogger(SomeClass.class);

然后,您可以使用
log.info
log.warn
log.error
log.debug

如果有助于了解,则可以在管理任务中将输出发送到标准输出。不幸的是,如果从策展任务队列运行任务,则不会捕获此信息。您的问题的解决方案可能对其他运行复杂策展任务的DSpace用户有用。