代码链接:https://pan.baidu.com/s/1clGMx0YGqxYox50QXkG7Gg 密码:7tsg
简介:Logback是由log4j创始人设计的另一个开源日志组件,官方网站: http://logback.qos.ch。
使用:下面直接阐述如何使用
程序结构:
logback-spring.xml中
只需改动第3/39/62行即包含TestLogBack的地方,替换成你的项目名即可
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
<property name="APP_NAME" value="TestLogBack"/>
<contextName>${APP_NAME}</contextName>
<jmxConfigurator/>
<logger name="org.springframework.web" level="INFO"/>
<logger name="com.springboot.in.action" level="TRACE"/>
<logger name="org.apache.velocity.runtime.log" level="INFO"/>
appender("CONSOLE", ConsoleAppender) {
encoder(PatternLayoutEncoder) {
pattern = "%d{HH:mm:ss.SSS} [%thread] %-5level %logger{35} - %msg %n"
charset = Charset.forName("utf8")
}
}
<property name="LOG_PATTERN" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{35} - %msg %n"></property>
<property name="LOG_FILE_PATTERN" value="${APP_NAME}.%d{yyyy-MM-dd}.log"></property>
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${LOG_PATTERN}</pattern>
<charset>utf8</charset>
</encoder>
</appender>
<appender name="dailyRollingFileAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!--<File>../DataSynchronize/logs/info/GpsDataFilter_INFO</File>-->
<!--<File>logFile.log</File>-->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>./logs/info/TestLogBack%d{yyyy-MM-dd}_INFO</fileNamePattern>
<maxHistory>30</maxHistory>
</rollingPolicy>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>INFO</level>
</filter>
<encoder charset="UTF-8">
<pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] %level [%thread] %file:%line - %msg%n</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<appender name="SYS_ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!--<File>../DataSynchronize/logs/error/GpsDataFilter_ERROR</File>-->
<!--过滤器,只打ERROR级别的日志-->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>./logs/error/TestLogBack%d{yyyy-MM-dd}_ERROR</fileNamePattern> <maxHistory>12</maxHistory>
</rollingPolicy>
<encoder charset="UTF-8">
<pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] %level [%thread] %file:%line - %msg%n</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<root level="DEBUG">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="dailyRollingFileAppender"/>
<appender-ref ref="SYS_ERROR"/>
</root>
</configuration>
测试类
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
/**
* Copyright © 2018 zxl
* <p>
* DESCRIPTION
*
* @create 2018-04-28 11:17
* @author: zxl
*/
@Component
public class TestLog {
//日志
private final Logger logger = LoggerFactory.getLogger(TestLog.class);
public void test(){
logger.info("这是info的日志文件");
logger.error("这是error的日志文件");
}
}
启动类
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.transaction.annotation.EnableTransactionManagement;
@SpringBootApplication
public class SpringbootTestLogbackApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootTestLogbackApplication.class, args);
System.out.println("同步程序启动成功");
new TestLogbackMain().ceshi();
}
}