Java >> Java tutorial >  >> Tag >> Log4j

LOG4J2 RollingFile Appender skriver ikke til fil

Jeg forsøger at konfigurere log4j2 efter kode, men min RollingFile og mit brugerdefinerede plugin "JTxtLogAppender" virker ikke. Problemet med RollingFile er, at logfilen er oprettet, men den skriver ikke til filen, hverken til mit brugerdefinerede plugin, men output til konsol virker.

Her er min kode:

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

Svar

Før al ovenstående kode udfører jeg

LogManager.shutdown();

og det virker nu.


Java tag