如何在Java配置中使用log4创建具有不同内容的差异日志文件 [英] How create diferents log File with different content using log4 in java configuration

查看:34
本文介绍了如何在Java配置中使用log4创建具有不同内容的差异日志文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用春季批处理,由于我需要访问外部属性文件,因此我需要创建一个用于工作的日志,并且需要创建不同的日志文件.我需要创建配置日志在 java代码中.我的容貌是

i am using spring batch and i need to create different log files one log for job, due to i acces to external properties file, i need to create configuration logs in java code. My canfiguration is

ConsoleAppender console = new ConsoleAppender();
    console.setLayout(new PatternLayout(stdoutConversionPattern));
    console.setThreshold(Level.INFO);
    console.activateOptions();
    Logger.getRootLogger().addAppender(console);

    // FICHERO: FileAppender1.LOG CONTENDRA LA INFROMACION DE LA EJECUCION DEL FileAppender1
        RollingFileAppender FileAppender1Appender = new RollingFileAppender();
        FileAppender1Appender.setName("FileAppender1Logger");
        FileAppender1Appender.setFile(FileAppender1File);
        FileAppender1Appender.setLayout(new PatternLayout(FileAppender1ConversionPattern));
        FileAppender1Appender.setAppend(true);
        FileAppender1Appender.setMaxBackupIndex(FileAppender1MaxBackup);
        FileAppender1Appender.setMaxFileSize(FileAppender1MaxFileSize);
        FileAppender1Appender.activateOptions();
        Logger.getRootLogger().addAppender(FileAppender1Appender);

    // FICHERO: FileAppender2.LOG CONTENDRA LA INFROMACION DE LA EJECUCION DEL FileAppender2
        RollingFileAppender FileAppender2Appender = new RollingFileAppender();
        FileAppender2Appender.setName("FileAppender2Logger");
        FileAppender2Appender.setFile(FileAppender2File);
        FileAppender2Appender.setLayout(new PatternLayout(FileAppender2ConversionPattern));
        FileAppender2Appender.setAppend(true);
        FileAppender2Appender.setMaxBackupIndex(FileAppender2MaxBackup);
        FileAppender2Appender.setMaxFileSize(FileAppender2MaxFileSize);
        FileAppender2Appender.activateOptions();
        Logger.getRootLogger().addAppender(FileAppender2Appender);

        Logger.getRootLogger().setAdditivity(false);
        properties.put("logging.file", FileAppender2File);

我写:

static final Logger FileAppender1Log = LogManager.getLogger("FileAppender1Logger");
static final Logger FileAppender1Log = LogManager.getLogger("FileAppender2Logger");

但是总是记录器写入所有日志文件当我想要不同的记录器为作业记录一个日志时对不起我的英语,不是我的母语languaje,谢谢

But Always the logger write en all logs files when i want have differents logger one log for job Sorry for my english, not is my native languaje and thanks

推荐答案

您正在将两个追加程序添加到Root配置中,这就是为什么它无法区分其他记录器的原因.您应该将记录器添加到Logger中,如下所示.

You are adding both appender to Root configuration, thats why it is not able to differentiate different logger. You should add appender to Logger which you are interested like below

Logger.getLogger("FileAppender1Logger").addAppender(FileAppender1Appender);
Logger.getLogger("FileAppender2Logger").addAppender(FileAppender2Appender);

这篇关于如何在Java配置中使用log4创建具有不同内容的差异日志文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆