Yes, I’d like to know that too. We have consistently found in the past that questions regarding “how can I make this code work?” almost always do not produce as good results as when answering “how can I make this use case work?”.
Ralph > On May 20, 2022, at 6:16 AM, Volkan Yazıcı <vol...@yazi.ci> wrote: > > Stephen, given your past questions, I see that you are trying to > programmatically configure Log4j with interesting features, e.g., multiple > logger contexts and such. May I ask what is your use case? What are you > exactly trying to solve? > > On Thu, May 19, 2022 at 5:57 PM Stephen Johns <mr.stephen.jo...@gmail.com> > wrote: > >> 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 >> >> -- >> ☮ >> --------------------------------------------------------------------- To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org For additional commands, e-mail: log4j-user-h...@logging.apache.org