Reputation: 3
I have configuring my logback-spring.xml file the following way:
<logger name="com.mypack" level="info" additivity="false">
<appender-ref ref="CLOUD" />
<appender-ref ref="RollingFile" />
<appender-ref ref="STDOUT" />
</logger>
<logger name="TrackingLog" level="info" additivity="false">
<appender-ref ref="CLOUD" />
<appender-ref ref="RollingFile" />
<appender-ref ref="STDOUT" />
</logger>
<logger name="PostBackLog" level="info" additivity="false">
<appender-ref ref="CLOUD" />
<appender-ref ref="RollingFile" />
<appender-ref ref="STDOUT" />
</logger>
<root level="error" includeLocation="true">
<appender-ref ref="CLOUD" />
<appender-ref ref="RollingFile" />
<appender-ref ref="STDOUT" />
</root>
I want also that level "trace" for com.mypack will behave the same way as "info". So far I didn't have any success with it. I need something like
<logger name="com.mypack" level="info" additivity="false">
<appender-ref ref="CLOUD" />
<appender-ref ref="RollingFile" />
<appender-ref ref="STDOUT" />
</logger>
<logger name="com.mypack" level="trace" additivity="false">
<appender-ref ref="CLOUD" />
<appender-ref ref="RollingFile" />
<appender-ref ref="STDOUT" />
</logger>
<logger name="TrackingLog" level="info" additivity="false">
<appender-ref ref="CLOUD" />
<appender-ref ref="RollingFile" />
<appender-ref ref="STDOUT" />
</logger>
<logger name="PostBackLog" level="info" additivity="false">
<appender-ref ref="CLOUD" />
<appender-ref ref="RollingFile" />
<appender-ref ref="STDOUT" />
</logger>
<root level="error" includeLocation="true">
<appender-ref ref="CLOUD" />
<appender-ref ref="RollingFile" />
<appender-ref ref="STDOUT" />
</root>
appreciate for any help.
Upvotes: 0
Views: 288
Reputation: 548
Use if conditions to set different logging level.
The first, You need to Janino library for conditional logging. Reference janino and add this in your pom.xml
<dependency>
<groupId>org.codehaus.janino</groupId>
<artifactId>janino</artifactId>
<version>3.1.6</version>
</dependency>
The second, Add environment variable to set to different logging level.
For example
your_key=your_value
Finally, Add if conditions
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="30">
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<target>System.out</target>
<encoder>
<pattern>[%d{yyyy-MM-dd HH:mm:ss}:%-3relative][%thread] %-5level %logger{100} - %msg%n</pattern>
</encoder>
</appender>
<!-- if exists your key in environment variable -->
<if condition='isNull("your_key")'>
<!-- if your key exists -->
<then>
<logger name="com.mypack" level='debug'>
<appender-ref ref="STDOUT" />
</logger>
</then>
<!-- if your key doesn't exist -->
<else>
<logger name="com.mypack" level='info'>
<appender-ref ref="STDOUT" />
</logger>
</else>
</if>
</configuration>
Upvotes: 1