All of the following return the same logger - that being the Root logger
for the class that this code is in. I would like to think these would all
be different and I would get my 3 custom ones back for the first 3 calls.
Note the files specified by the appenders are created, but no logs are sent
to them.

Logger _l = (Logger) LogManager.getLogger("Global");
       _l = (Logger) LogManager.getLogger("fakeswitch");
       _l = (Logger) LogManager.getLogger("fakeswitch_two");
       _l = (Logger) LogManager.getLogger();

I create custom loggers using the following:

ComponentBuilder triggeringPolicy =
configurationBuilder.newComponent("Policies")
        
.addComponent(configurationBuilder.newComponent("TimeBasedTriggeringPolicy").
                addAttribute("interval", "1"));

AppenderComponentBuilder log4jFileAppenderBuilder = configurationBuilder.
        newAppender(pName + "_SmdrDailyRollingFileAppender", "RollingFile");
log4jFileAppenderBuilder.addAttribute("filename", pLogFilename);
log4jFileAppenderBuilder.addAttribute("filePattern", pLogFilenamePattern);
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
LoggerComponentBuilder logger = configurationBuilder.newLogger(pName,
Level.DEBUG);
logger.add(configurationBuilder.newAppenderRef(pName +
"_SmdrDailyRollingFileAppender"));
logger.addAttribute("additivity", false);
configurationBuilder.add(logger);

// Actually use it
LoggerContext _loggerContext =
Configurator.initialize(configurationBuilder.build());

The equiv XML from writeXmlConfiguration is:

<?xml version="1.0" ?>
<Configuration>
    <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>
        <RollingFile name="fakeswitch_SmdrDailyRollingFileAppender"
filename="ps/debug/SMDR_DEBUG_fakeswitch.txt"

filePattern="ps/debug/SMDR_DEBUG_fakeswitch_%d{yyyyMMdd}.txt.gz">
            <Policies>
                <TimeBasedTriggeringPolicy interval="1"/>
            </Policies>
            <PatternLayout pattern="%d{MM.DD.yy-HH:mm:ss} %m%n"/>
        </RollingFile>
        <RollingFile name="fakeswitch_two_SmdrDailyRollingFileAppender"
                     filename="ps/debug/SMDR_DEBUG_fakeswitch_two.txt"

filePattern="ps/debug/SMDR_DEBUG_fakeswitch_two_%d{yyyyMMdd}.txt.gz">
            <Policies>
                <TimeBasedTriggeringPolicy interval="1"/>
            </Policies>
            <PatternLayout pattern="%d{MM.DD.yy-HH:mm:ss} %m%n"/>
        </RollingFile>
    </Appenders>
    <Loggers>
        <Logger name="Global" level="DEBUG" additivity="false">
            <AppenderRef ref="Global_SmdrDailyRollingFileAppender"/>
        </Logger>
        <Logger name="fakeswitch" level="DEBUG" additivity="false">
            <AppenderRef ref="fakeswitch_SmdrDailyRollingFileAppender"/>
        </Logger>
        <Logger name="fakeswitch_two" level="DEBUG" additivity="false">
            <AppenderRef ref="fakeswitch_two_SmdrDailyRollingFileAppender"/>
        </Logger>
    </Loggers>
</Configuration>





-- 
   ☮

Reply via email to