log4j 2 adding multiple colors to console appender
jakarta-ee, java, log4j2, xml
Solution
I think I found the solution. I downloaded log4j2-core-sources.jar and traced the source. You can write it as below;
<Console name="SlowConsole" target="SYSTEM_OUT">
<PatternLayout disableAnsi="false" pattern="%highlight{%d{HH:mm:ss.SSS} %-5level %logger{36}.%M() @%L - %msg%n}{FATAL=red blink, ERROR=red, WARN=yellow bold, INFO=black, DEBUG=green bold, TRACE=blue}"/>
</Console>
I think log4j2 documentation and its examples may need to be updated.
Problem
Hi I just downloaded and configured log4j-2. I am stuck on applying color codes to the `SlowConsole` console appender. My console appender is like below. ``` <?xml version="1.0" encoding="UTF-8"?> <Configuration status="WARN"> <Appenders> <Console name="Console" target="SYSTEM_OUT"> <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %logger{36} - %msg%n"/> </Console> <Console name="SlowConsole" target="SYSTEM_OUT"> <PatternLayout pattern="%highlight{%d{HH:mm:ss.SSS} %-5level %logger{36}.%M() @%L - %msg%n}{FATAL=red, ERROR=red, WARN=yellow, INFO=black, DEBUG=green, TRACE=blue}"/> </Console> <File name="File" fileName="C:\log\out.txt"> <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %logger{36} - %msg%n" /> </File> </Appenders> <Loggers> <logger name="org.abc.ea.web" level="ALL" additivity="false"> <!--Log4j for the WEB MODULE --> <appender-ref ref="SlowConsole"/> </logger> <logger name="org.abc.ea.ejb" level="ALL" additivity="false"> <!--Log4j for the EJB MODULE --> <appender-ref ref="SlowConsole"/> </logger> <Root level="ERROR"> <AppenderRef ref="Console"/> <AppenderRef ref="File" /> </Root> </Loggers> </Configuration> ``` I have two questions, I am new to log4j, is this the right way to write xml config file? How can i add two color codes to each log level? for example: DEBUG=green -> will output light green font, But i need it to be `dim` and `bold`