Mike, Did you resolve this issue?
Gary On Wed, Apr 3, 2019 at 1:57 PM Mike Garcia <mikegarcia2...@hotmail.com> wrote: > I'm trying to add a log4j2 file appender at runtime. I have a process > that has it's own log4j2.xml config file which logs to a rolling file > appender and the console. This process will receive requests from other > processes. It creates an output folder that I want to create a log file in > for the output during that run. So, I add a file appender in code, then > remove it when the job is complete. This worked in log4j 1.x but doesn't > work now that I updated to log4j2. Here's the code to add the appender: > > final LoggerContext loggerContext = (LoggerContext) > LogManager.getContext(false); > final Configuration config = loggerContext.getConfiguration(); > FileAppender appender = > > FileAppender.newBuilder().withName("MyFileAppender").withAppend(false) > .withFileName(new File(myOutputDirectory, > "log.txt").toString()) > .withLayout( > PatternLayout.newBuilder().withPattern("%d [%t] > %-5p %c - %m%n").build()) > .setConfiguration(loggerContext.getConfiguration()).build(); > appender.start(); > config.addAppender(appender); > > > loggerContext.getRootLogger().addAppender(loggerContext.getConfiguration().getAppender(appender.getName())); > loggerContext.updateLoggers(); > > The log.txt file is create but nothing is written to it. I also close the > appender like this: > > if (appender != null && loggerContext != null) > { > appender.stop(); > Configuration config = loggerContext.getConfiguration(); > config.getRootLogger().removeAppender("OOEngineFileAppender"); > loggerContext.getRootLogger().removeAppender(appender); > loggerContext.updateLoggers(); > } > > Any idea what I'm doing wrong? > > BTW, I turned on log4j2 debug via the command line switch and I see this > output when I add the new appender: > > DEBUG StatusLogger Not in a ServletContext environment, thus not > loading WebLookup plugin. > DEBUG StatusLogger PluginManager 'Converter' found 44 plugins > DEBUG StatusLogger Starting OutputStreamManager > SYSTEM_OUT.false.false-2 > DEBUG StatusLogger Starting FileManager > e:\temp\OutputDir\TaskRun_20190402_215311_122\log.txt > > Thanks, > -Mike > >