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.