logback.xml按时间和文件大小生成日志(分级别)

来源:互联网 发布:剑灵灵剑捏脸数据图 编辑:程序博客网 时间:2024/06/10 11:41

1、maven依赖

<dependency><groupId>ch.qos.logback</groupId><artifactId>logback-access</artifactId><version>1.2.2</version></dependency><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-core</artifactId><version>1.2.2</version></dependency><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.2.2</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>1.7.25</version></dependency>

2、logback.xml

<?xml version="1.0" encoding="UTF-8"?><configuration><!-- 定义log文件的目录 --><property name="LOG_HOME" value="D:/logbacktest"></property><appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"><encoder><!-- %.-1level 只显示信息级别的首字母,%-5level 左对齐显示信息级别全称 --><Pattern>[%date{yyyy-MM-dd HH:mm:ss}] [%-5level] --%mdc{client} %msg%n</Pattern></encoder></appender><appender name="TRACE_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${LOG_HOME}/trace.log</file><append>true</append><rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"><fileNamePattern>${LOG_HOME}/logs/trace.%d{yyyy-MM-ddssSSS}.%i.log.zip</fileNamePattern><maxFileSize>20MB</maxFileSize><maxHistory>7</maxHistory><totalSizeCap>20GB</totalSizeCap></rollingPolicy><encoder><pattern>[%date{yyyy-MM-dd HH:mm:ss}] [%-5level] [%logger:%line] --%mdc{client} %msg%n</pattern></encoder><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>TRACE</level><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter></appender><appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${LOG_HOME}/info.log</file><append>true</append><rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"><fileNamePattern>${LOG_HOME}/logs/info.%d{yyyy-MM-dd}.%i.log.zip</fileNamePattern><maxFileSize>20MB</maxFileSize><maxHistory>7</maxHistory><totalSizeCap>20GB</totalSizeCap></rollingPolicy><encoder><pattern>[%date{yyyy-MM-dd HH:mm:ss}] [%-5level] [%logger:%line] --%mdc{client} %msg%n</pattern></encoder><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>INFO</level><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter></appender><appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${LOG_HOME}/debug.log</file><append>true</append><rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"><fileNamePattern>${LOG_HOME}/logs/debug.%d{yyyy-MM-dd}.%i.log.zip</fileNamePattern><maxFileSize>20MB</maxFileSize><maxHistory>7</maxHistory><totalSizeCap>20GB</totalSizeCap></rollingPolicy><encoder><pattern>[%date{yyyy-MM-dd HH:mm:ss}] [%-5level] [%logger:%line] --%mdc{client} %msg%n</pattern></encoder><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>DEBUG</level><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter></appender><appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${LOG_HOME}/warn.log</file><append>true</append><rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"><fileNamePattern>${LOG_HOME}/logs/warn.%d{yyyy-MM-dd}.%i.log.zip</fileNamePattern><maxFileSize>20MB</maxFileSize><maxHistory>7</maxHistory><totalSizeCap>20GB</totalSizeCap></rollingPolicy><encoder><pattern>[%date{yyyy-MM-dd HH:mm:ss}] [%-5level] [%logger:%line] --%mdc{client} %msg%n</pattern></encoder><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>WARN</level><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter></appender><appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${LOG_HOME}/error.log</file><append>true</append><rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"><fileNamePattern>${LOG_HOME}/logs/error.%d{yyyy-MM-dd}.%i.log.zip</fileNamePattern><maxFileSize>20MB</maxFileSize><maxHistory>7</maxHistory><totalSizeCap>20GB</totalSizeCap></rollingPolicy><encoder><pattern>[%date{yyyy-MM-dd HH:mm:ss}] [%-5level] [%logger:%line] --%mdc{client} %msg%n</pattern></encoder><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>ERROR</level><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter></appender><appender name="ALL_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${LOG_HOME}/all.log</file><append>true</append><rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"><fileNamePattern>${LOG_HOME}/logs/all.%d{yyyy-MM-dd}.%i.log.zip</fileNamePattern><maxFileSize>100MB</maxFileSize><maxHistory>7</maxHistory><totalSizeCap>50GB</totalSizeCap></rollingPolicy><encoder><pattern>[%date{yyyy-MM-dd HH:mm:ss}] [%-5level] [%logger:%line] --%mdc{client} %msg%n</pattern></encoder></appender><root level="TRACE"><appender-ref ref="STDOUT" /><appender-ref ref="TRACE_FILE" /><appender-ref ref="INFO_FILE" /><appender-ref ref="DEBUG_FILE" /><appender-ref ref="WARN_FILE" /><appender-ref ref="ERROR_FILE" /><appender-ref ref="ALL_FILE" /></root></configuration>  

3、测试demo

App.java
import org.slf4j.Logger;import org.slf4j.LoggerFactory;public class App {private final static Logger logger = LoggerFactory.getLogger(App.class);public static void main(String[] args) {for(int i=0;i<1000000;i++){logger.info("logback info 成功了");logger.error("logback error 成功了");logger.debug("logback debug 成功了");logger.warn("logback warn 成功了");logger.trace("logback trace 成功了");}}}




0 0
原创粉丝点击