Hello, My application has several dependencies, some of which have other dependencies. I am using Log4j2 for logging and wanted to separate application logs from dependency logs.
Below is my log4j2.xml <?xml version="1.0" encoding="UTF-8"?> <Configuration> <Properties> <property name="rollSuffix">%d{yyyyMMdd}</property> <property name="commonPattern">%d %level %class %method - %msg%n</property> </Properties> <Appenders> <RollingFile name="xLog" fileName="x.log" filePattern="x-${rollSuffix}.log" immediateFlush="true" > <PatternLayout pattern="${commonPattern}" /> <Policies> <TimeBasedTriggeringPolicy interval="1" modulate="true" /> </Policies> </RollingFile> <RollingFile name="yLog" fileName="y.log" filePattern="y-${rollSuffix}.log" immediateFlush="true" > <PatternLayout pattern="${commonPattern}" /> <Policies> <TimeBasedTriggeringPolicy interval="1" modulate="true" /> </Policies> </RollingFile> <RollingFile name="zLog" fileName="z.log" filePattern="z-${rollSuffix}.log" immediateFlush="true" > <PatternLayout pattern="${commonPattern}" /> <Policies> <TimeBasedTriggeringPolicy interval="1" modulate="true" /> </Policies> </RollingFile> <RollingFile name="appLog" fileName="app.log" filePattern="app-${rollSuffix}.log" immediateFlush="false" > <PatternLayout pattern="%d %-5p - %m%n" /> <Policies> <TimeBasedTriggeringPolicy interval="1" modulate="true" /> </Policies> </RollingFile> </Appenders> <Loggers> <Logger name="com.x" level="error" additivity="false" > <AppenderRef ref="xLog" /> </Logger> <Logger name="io.y" level="error" additivity="false" > <AppenderRef ref="yLog" /> </Logger> <Logger name="org.z" level="error" additivity="false" > <AppenderRef ref="zLog" /> </Logger> <Root level="all"> <AppenderRef ref="appLog" /> </Root> </Loggers> </Configuration> As you can see, for each x, y, z, etc modules, I have defined an appender and a logger. This made the xml too long and maintenance has become more and more difficult. I have some questions: 1. I had found out that multiple loggers should not refer to same file appender (e.g. FileAppender, RollingFileAppender etc). Is it still valid for latest versions? 2. Is there a way to shrink the xml by reducing both appenders and loggers? 3. Is it a feasible feature for log4j2 so that a logger can have multiple names? (I am thinking about requesting the feature) For example: <Logger level="error" additivity="false" > <Names> <Name name="com.x" /> <Name name="io.y" /> <Name name="org.z" /> </Names> <AppenderRef ref="xLog" /> </Logger> Regards, sazzad