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
>
> --
>    ☮
>

Reply via email to