I'm using Logback for log management in a Spring Boot application, how i need these specifications:
I used this logback.xml configuration file and it worked pretty good:
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true">
<property name="DEV_HOME" value="logging"/>
<appender name="consoleAppender" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<charset>UTF-8</charset>
<Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</Pattern>
</encoder>
</appender>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${DEV_HOME}/debug.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- daily rollover. Make sure the path matches the one in the file element or else
the rollover logs are placed in the working directory. -->
<fileNamePattern>${DEV_HOME}/archived/debug.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>5MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!-- keep 30 days' worth of history -->
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder>
<charset>UTF-8</charset>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<root level="DEBUG">
<appender-ref ref="FILE"/>
</root>
<root level="INFO">
<appender-ref ref="consoleAppender" />
</root>
</configuration>
If you are not going to using spring extension for logback, all what you need to do is defining a logback.xml
(or logback.groovy
) and putting it into classpath
.
A rollback appender can be defined as:
appender("FILE", RollingFileAppender) {
file = "root.log"
encoder(PatternLayoutEncoder) {
pattern = "%date %level [%thread] %logger{10} [%file:%line] %msg%n"
}
rollingPolicy(TimeBasedRollingPolicy) {
fileNamePattern = "root-%d{yyyy-MM-dd}.log"
maxHistory = 7
}
}
This is in groovy and it's a time based rollback appender. You can google for more examples.
If you are going to using spring extension, please see here .
This alternative contains a Redis appender:
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true">
<property name="DEV_HOME" value="logs"/>
<!--appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashAccessTcpSocketAppender">
<destination>127.0.0.1:4560</destination>
<waitStrategyType>sleeping</waitStrategyType>
<includeCallerInfo>true</includeCallerInfo>
<encoder class="net.logstash.logback.encoder.LogstashAccessEncoder" >
<timeZone>UTC+1</timeZone>
</encoder>
</appender-->
<appender name="REDIS" class="com.cwbase.logback.RedisAppender">
<host>localhost</host>
<port>6379</port>
<key>fouras-logs</key>
<type>fouras-log</type>
<database>12</database>
<sourceHost>localhost</sourceHost>
<source>fouras</source>
</appender>
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<charset>UTF-8</charset>
<Pattern>[%d{yyyy-MM-dd HH:mm:ss:SSS} %thread %-5level %logger{1000} - %msg]%n</Pattern>
</encoder>
</appender>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${DEV_HOME}/debug.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- daily rollover. Make sure the path matches the one in the file element or else
the rollover logs are placed in the working directory. -->
<fileNamePattern>${DEV_HOME}/archived/debug.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>5MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!-- keep 30 days' worth of history -->
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder>
<charset>UTF-8</charset>
<pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS} %thread %-5level %logger{1000} - %msg]%n</pattern>
</encoder>
</appender>
<logger name="com.datcom.fouras" level="TRACE">
<appender-ref ref="REDIS"/>
<!--appender-ref ref="LOGSTASH"/-->
</logger>
<root level="DEBUG">
<appender-ref ref="FILE"/>
</root>
<root level="INFO">
<appender-ref ref="CONSOLE"/>
<!--appender-ref ref="REDIS"/-->
</root>
</configuration>
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.