LOG4J2 Приложение для откатки файла не записывается в файл

#java #logging #log4j2

Вопрос:

Я пытаюсь настроить log4j2 с помощью кода, но мой файл свертки и мой пользовательский плагин»JTxtLogAppender» не работают. Проблема с катящимся файлом заключается в том, что файл журнала создан, но он не записывается ни в файл, ни в мой пользовательский плагин, но вывод в консоль работает.

Вот мой код:

         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);
 

Ответ №1:

Перед выполнением всего вышеперечисленного кода я выполняю

 LogManager.shutdown();
 

и это работает сейчас.