LOG4J2 RollingFile Appender 不写入文件

LOG4J2 RollingFile Appender not writing to file

我正在尝试通过代码配置 log4j2,但我的 RollingFile 和自定义插件“JTxtLogAppender”无法正常工作。 RollingFile 的问题是创建了日志文件,但它没有写入文件,也没有写入我的自定义插件,但控制台输出正常。

这是我的代码:

        String logFile = logPath + "dxc.log";
        String logFilePattern = logPath + "dxc-%d{yyyy-MM-dd}.log";

        PluginManager.addPackage("dxc");

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

        LayoutComponentBuilder layout = builder.newLayout("PatternLayout");
        layout.addAttribute("pattern", "%d{yyyy-MM-dd HH:mm:ss} %-5p [%t] %c: %m%n");

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

        ComponentBuilder triggeringPolicy = builder.newComponent("Policies")
                .addComponent(builder.newComponent("TimeBasedTriggeringPolicy"))
                .addComponent(builder.newComponent("SizeBasedTriggeringPolicy").addAttribute("size", "100M"));
        AppenderComponentBuilder rollingFile = builder.newAppender("rollingFile", "RollingFile")
                .addAttribute("fileName", logFile)
                .addAttribute("filePattern", logFilePattern)
                .addAttribute("immediateFlush", true)
                .addAttribute("append", true)
                .addComponent(triggeringPolicy)
                .add(layout);
        builder.add(rollingFile);

        AppenderComponentBuilder jTxtAppender = builder.newAppender("jTxtLogAppender", "JTxtLogAppender")
                .add(layout);
        builder.add(jTxtAppender);

        RootLoggerComponentBuilder rootLogger = builder.newRootLogger(Level.INFO)
                .add(builder.newAppenderRef("console"))
                .add(builder.newAppenderRef("rollingFile"))
                .add(builder.newAppenderRef("jTxtLogAppender"));
        builder.add(rootLogger);

        Configurator.initialize(builder.build());
        Configurator.setRootLevel(Level.INFO);

在我执行上述所有代码之前

LogManager.shutdown();

现在可以使用了。