0

我们正在从 Log4J 1.X 迁移到 Log4J 2.17.1。我们的应用程序需要为事务动态创建日志文件。事务完成后,需要关闭日志文件。我可以弄清楚如何添加附加程序和记录器并初始化配置。但不确定如何在配置初始化后创建和删除附加程序。

这是我的代码-

    ConfigurationBuilder<BuiltConfiguration> builder
    = ConfigurationBuilderFactory.newConfigurationBuilder();

    AppenderComponentBuilder console 
    = builder.newAppender("stdout", "Console"); 

    AppenderComponentBuilder file1 
    = builder.newAppender("log1", "File"); 
    file1.addAttribute("fileName", "logging1.log");         


    LayoutComponentBuilder standard 
    = builder.newLayout("PatternLayout");
    standard.addAttribute("pattern", "[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n");

    console.add(standard);

    file1.add(standard);
    builder.add(file1);
    builder.add(console); 

    RootLoggerComponentBuilder rootLogger 
    = builder.newRootLogger(Level.ERROR);
    rootLogger.add(builder.newAppenderRef("stdout"));

    rootLogger.add(builder.newAppenderRef("log1"));
    builder.add(rootLogger);


    LoggerComponentBuilder logger1 = builder.newLogger("com1", Level.DEBUG);
    logger1.add(builder.newAppenderRef("log1"));  

    logger1.addAttribute("additivity", false);

    builder.add(logger1);

    Configurator.initialize(builder.build());

感谢你的帮助。

4

0 回答 0