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

Reply via email to