I am trying to create a completely separate second Context/Configuration/Logger - not a logger within an existing config/context. Log messages are going to STDOUT.
Current code ConfigurationBuilder<BuiltConfiguration> _configurationBuilder = ConfigurationBuilderFactory.newConfigurationBuilder(); _configurationBuilder.setConfigurationName("SMDR_DEBUG_" + pName); LoggerContext _loggerContext = new LoggerContext("SMDR_DEBUG_" + pName); _configurationBuilder.setLoggerContext(_loggerContext); _configurationBuilder.setStatusLevel(Level.TRACE); // Create the appender AppenderComponentBuilder log4jFileAppenderBuilder = _configurationBuilder. newAppender(pName + "_SmdrDailyRollingFileAppender", "RollingFile"); log4jFileAppenderBuilder.addAttribute("filename", pLogFilename); log4jFileAppenderBuilder.addAttribute("filePattern", pLogFilenamePattern); // Setup roll-over ComponentBuilder triggeringPolicy = _configurationBuilder.newComponent("Policies") .addComponent(_configurationBuilder.newComponent("TimeBasedTriggeringPolicy"). addAttribute("interval", "1")); log4jFileAppenderBuilder.addComponent(triggeringPolicy); // Configure the PatternLayout LayoutComponentBuilder layoutComponentBuilder = _configurationBuilder.newLayout("PatternLayout"). addAttribute("pattern", DEBUG_PATTERN_LAYOUT_STRING); log4jFileAppenderBuilder.add(layoutComponentBuilder); // Add it back into configuration _configurationBuilder.add(log4jFileAppenderBuilder); // https://logging.apache.org/log4j/2.x/manual/customconfig.html RootLoggerComponentBuilder loggerBuilder = _configurationBuilder.newRootLogger(Level.DEBUG); loggerBuilder.add(_configurationBuilder.newAppenderRef(pName + "_SmdrDailyRollingFileAppender")); loggerBuilder.addAttribute("additivity", false); _configurationBuilder.add(loggerBuilder); LoggerContext _lc = Configurator.initialize(_configurationBuilder.build()); System.out.println("***** SRJ SRJ SMDR context from initialize is " + _lc); Logger _g = _loggerContext.getRootLogger(); System.out.println("***** SRJ SRJ SMDR rootlogger from context is " + _g); _g.error("***** SRJ SRJ ROOT LOGGER IN SMDR_DEBUG.txt"); Logger _gg = _loggerContext.getLogger(pName); System.out.println("***** SRJ SRJ SMDR logger "+pName+" from context is " + _gg); _gg.error("***** SRJ SRJ "+pName+" LOGGER IN SMDR_DEBUG.txt"); The .error() calls above go to STDOUT. Note that I have tried using reconfigure instead of initialize, but that messes up my original configuration. The loggers seem wrong, as I print them out and they seem like they are right name, but at error level ***** SRJ SRJ SMDR rootlogger from context is :ERROR in SMDR_DEBUG_Global 16:23:59.989 [main] ERROR - ***** SRJ SRJ ROOT LOGGER IN SMDR_DEBUG.txt <-- should be in log file ***** SRJ SRJ SMDR logger Global from context is Global:ERROR in SMDR_DEBUG_Global 16:23:59.990 [main] ERROR Global - ***** SRJ SRJ Global LOGGER IN SMDR_DEBUG.txt <-- should be in log file XML generated from builder: <?xml version="1.0" ?> <Configuration name="SMDR_DEBUG_Global" status="TRACE"> <Appenders> <RollingFile name="Global_SmdrDailyRollingFileAppender" filename="ps/debug/SMDR_DEBUG.txt" filePattern="ps/debug/SMDR_DEBUG_%d{yyyyMMdd}.txt.gz"> <Policies> <TimeBasedTriggeringPolicy interval="1"/> </Policies> <PatternLayout pattern="%d{MM.DD.yy-HH:mm:ss} %m%n"/> </RollingFile> </Appenders> <Loggers> <Root level="DEBUG" additivity="false"> <AppenderRef ref="Global_SmdrDailyRollingFileAppender"/> </Root> </Loggers> </Configuration> Trace from builder: 2022-05-19 16:23:59,921 main DEBUG PluginManager 'Converter' found 45 plugins 2022-05-19 16:23:59,922 main DEBUG Starting OutputStreamManager SYSTEM_OUT.false.false-3 2022-05-19 16:23:59,940 main INFO Log4j appears to be running in a Servlet environment, but there's no log4j-web module available. If you want better web container support, please add the log4j-web JAR to your web archive or server lib directory. 2022-05-19 16:23:59,941 main DEBUG Apache Log4j Core 2.17.1 initializing configuration org.apache.logging.log4j.core.config.builder.impl.BuiltConfiguration@3a3e78f 2022-05-19 16:23:59,942 main DEBUG Installed 1 script engine 2022-05-19 16:23:59,963 Thread Context Data Task DEBUG Initializing Thread Context Data Service Providers 2022-05-19 16:23:59,964 Thread Context Data Task DEBUG Thread Context Data Service Provider initialization complete 2022-05-19 16:23:59,969 main DEBUG Oracle Nashorn version: 1.8.0_252, language: ECMAScript, threading: Not Thread Safe, compile: true, names: [nashorn, Nashorn, js, JS, JavaScript, javascript, ECMAScript, ecmascript], factory class: jdk.nashorn.api.scripting.NashornScriptEngineFactory 2022-05-19 16:23:59,969 main DEBUG PluginManager 'Core' found 127 plugins 2022-05-19 16:23:59,969 main DEBUG PluginManager 'Level' found 0 plugins 2022-05-19 16:23:59,970 main DEBUG PluginManager 'Lookup' found 16 plugins 2022-05-19 16:23:59,970 main DEBUG Building Plugin[name=AppenderRef, class=org.apache.logging.log4j.core.config.AppenderRef]. 2022-05-19 16:23:59,971 main DEBUG createAppenderRef(ref="Global_SmdrDailyRollingFileAppender", level="null", Filter=null) 2022-05-19 16:23:59,971 main DEBUG Building Plugin[name=root, class=org.apache.logging.log4j.core.config.LoggerConfig$RootLogger]. 2022-05-19 16:23:59,972 main DEBUG createLogger(additivity="false", level="DEBUG", includeLocation="null", ={Global_SmdrDailyRollingFileAppender}, ={}, Configuration(SMDR_DEBUG_Global), Filter=null) 2022-05-19 16:23:59,972 main DEBUG Building Plugin[name=loggers, class=org.apache.logging.log4j.core.config.LoggersPlugin]. 2022-05-19 16:23:59,973 main DEBUG createLoggers(={root}) 2022-05-19 16:23:59,973 main DEBUG Building Plugin[name=TimeBasedTriggeringPolicy, class=org.apache.logging.log4j.core.appender.rolling.TimeBasedTriggeringPolicy]. 2022-05-19 16:23:59,975 main DEBUG TimeBasedTriggeringPolicy$Builder(interval="1", modulate="null", maxRandomDelay="null") 2022-05-19 16:23:59,975 main DEBUG Building Plugin[name=Policies, class=org.apache.logging.log4j.core.appender.rolling.CompositeTriggeringPolicy]. 2022-05-19 16:23:59,975 main DEBUG createPolicy(={TimeBasedTriggeringPolicy(nextRolloverMillis=0, interval=1, modulate=false)}) 2022-05-19 16:23:59,975 main DEBUG Building Plugin[name=layout, class=org.apache.logging.log4j.core.layout.PatternLayout]. 2022-05-19 16:23:59,976 main DEBUG PatternLayout$Builder(pattern="%d{MM.DD.yy-HH:mm:ss} %m%n", PatternSelector=null, Configuration(SMDR_DEBUG_Global), Replace=null, charset="null", alwaysWriteExceptions="null", disableAnsi="null", noConsoleNoAnsi="null", header="null", footer="null") 2022-05-19 16:23:59,976 main DEBUG PluginManager 'Converter' found 45 plugins 2022-05-19 16:23:59,982 main DEBUG Building Plugin[name=appender, class=org.apache.logging.log4j.core.appender.RollingFileAppender]. 2022-05-19 16:23:59,983 main DEBUG RollingFileAppender$Builder(fileName="ps/debug/SMDR_DEBUG.txt", filePattern="ps/debug/SMDR_DEBUG_%d{yyyyMMdd}.txt.gz", append="null", locking="null", Policies(CompositeTriggeringPolicy(policies=[TimeBasedTriggeringPolicy(nextRolloverMillis=0, interval=1, modulate=false)])), Strategy=null, advertise="null", advertiseUri="null", createOnDemand="null", filePermissions="null", fileOwner="null", fileGroup="null", bufferedIo="null", bufferSize="null", immediateFlush="null", ignoreExceptions="null", PatternLayout(%d{MM.DD.yy-HH:mm:ss} %m%n), name="Global_SmdrDailyRollingFileAppender", Configuration(SMDR_DEBUG_Global), Filter=null, ={}) 2022-05-19 16:23:59,984 main TRACE New file 'ps/debug/SMDR_DEBUG.txt' created = true 2022-05-19 16:23:59,984 main DEBUG Returning file creation time for /opt/SecureLogix/ETM/ps/debug/SMDR_DEBUG.txt 2022-05-19 16:23:59,984 main DEBUG Starting RollingFileManager ps/debug/SMDR_DEBUG.txt 2022-05-19 16:23:59,985 main DEBUG PluginManager 'FileConverter' found 2 plugins 2022-05-19 16:23:59,985 main DEBUG Setting prev file time to 2022-05-19T16:23:59.000+0100 2022-05-19 16:23:59,985 main DEBUG Initializing triggering policy CompositeTriggeringPolicy(policies=[TimeBasedTriggeringPolicy(nextRolloverMillis=0, interval=1, modulate=false)]) 2022-05-19 16:23:59,986 main DEBUG Initializing triggering policy TimeBasedTriggeringPolicy(nextRolloverMillis=0, interval=1, modulate=false) 2022-05-19 16:23:59,987 main TRACE PatternProcessor.getNextTime returning 2022/05/20-00:00:00.000, nextFileTime=2022/05/19-00:00:00.000, prevFileTime=1970/01/01-01:00:00.000, current=2022/05/19-16:23:59.986, freq=DAILY 2022-05-19 16:23:59,988 main TRACE PatternProcessor.getNextTime returning 2022/05/20-00:00:00.000, nextFileTime=2022/05/19-00:00:00.000, prevFileTime=2022/05/19-00:00:00.000, current=2022/05/19-16:23:59.988, freq=DAILY 2022-05-19 16:23:59,988 main DEBUG Building Plugin[name=appenders, class=org.apache.logging.log4j.core.config.AppendersPlugin]. 2022-05-19 16:23:59,988 main DEBUG createAppenders(={Global_SmdrDailyRollingFileAppender}) 2022-05-19 16:23:59,989 main DEBUG Configuration org.apache.logging.log4j.core.config.builder.impl.BuiltConfiguration@3a3e78f initialized -- ☮