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