Apache Log4j2 for specific logging using log4j2.xml

I am using log4j2. But the problem I am facing is that it logs all the logs. I want ... to write from a specific package to a specific file and another package to another file. I am using log4j2.xml for configuration. Can someone please help?

log4j2.xml

<?xml version="1.0" encoding="UTF-8"?> 

 <Loggers> <Root level="DEBUG" additivity="false"> <AppenderRef level="DEBUG" ref="CONSOLE" /> <AppenderRef level="DEBUG" ref="fileAppender" /> </Root> <Logger name="com.pkg.test.logging.method" level="DEBUG" additivity="false"> <Appender-ref ref="fileAppender" level="DEBUG" /> </Logger> </Loggers> <Appenders> <Console name="CONSOLE" target="SYSTEM_OUT"> <PatternLayout pattern="%highlight{[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} %c{1}: %L - %msg%n%throwable}" /> </Console> <RollingFile name="fileAppender" fileName="./log.log" filePattern="./log-%d{yyyy-MM-dd}.log"> <PatternLayout pattern="%highlight{[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} %c{1}: %L - %msg%n}" /> <Policies> <TimeBasedTriggeringPolicy interval="1" modulate="true" /> </Policies> </RollingFile> </Appenders> 

+8
java log4j2
source share
2 answers

Just answered the question.

log4j2.xml

  <?xml version="1.0" encoding="UTF-8"?> <Loggers> <Root level="DEBUG" additivity="false"> <AppenderRef level="DEBUG" ref="CONSOLE" /> </Root> <Logger name="com.pkg.test.logging.method" level="DEBUG" additivity="false"> <Appender-ref ref="fileAppender" level="DEBUG" /> </Logger> </Loggers> <Appenders> <Console name="CONSOLE" target="SYSTEM_OUT"> <PatternLayout pattern="%highlight{[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} %c{1}: %L - %msg%n%throwable}" /> </Console> <RollingFile name="fileAppender" fileName="./log.log" filePattern="./log-%d{yyyy-MM-dd}.log"> <PatternLayout pattern="%highlight{[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} %c{1}: %L - %msg%n}" /> <Policies> <TimeBasedTriggeringPolicy interval="1" modulate="true" /> </Policies> </RollingFile> </Appenders> 

Removed <AppenderRef level="DEBUG" ref="fileAppender" /> from the root logger. Thus, he began to record packet-based logs.

+6
source share

From Log4J Manual :

Adding a specific registrar for a class: (here you can also refer to packages)

 <Logger name="org.apache.logging.log4j.test2" level="debug" additivity="false"> <AppenderRef ref="File"/> </Logger> 

Adding a specific application:

 <Appender type="File" name="File" fileName="${filename}"> <Layout type="PatternLayout"> <Pattern>%d %p %C{1.} [%t] %m%n</Pattern> </Layout> </Appender> 
+2
source share

All Articles