1.在src/main/resources添加logback-spring.xml 配置文件就可以被加载,默认的springboot集成了logback框架
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appender name="consoleLog" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<appender name="fileInfoLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>DEBUG</level>
<onMatch>DENY</onMatch>
<onMismatch>ACCEPT</onMismatch>
</filter>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
<!--滚动策略-->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--路径-->
<fileNamePattern>/var/log/cuss/translation/info.%d.log</fileNamePattern>
</rollingPolicy>
</appender>
<appender name="fileErrorLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>ERROR</level>
</filter>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
<!--滚动策略-->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--路径-->
<fileNamePattern>/var/log/cuss/translation/error.%d.log</fileNamePattern>
</rollingPolicy>
</appender>
<!-- <appender name="DB" class="ch.qos.logback.classic.db.DBAppender">
<connectionSource class="ch.qos.logback.core.db.DriverManagerConnectionSource">
<driverClass>com.mysql.jdbc.Driver</driverClass>
<url>jdbc:mysql://xxxx:3306/log?useUnicode=true&characterEncoding=UTF-8</url>
<user>root</user>
<password>root</password>
</connectionSource>
</appender>
<appender name ="ASYNC" class= "ch.qos.logback.classic.AsyncAppender">
不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志
<discardingThreshold >0</discardingThreshold>
更改默认的队列的深度,该值会影响性能.默认值为256
<queueSize>512</queueSize>
添加附加的appender,最多只能添加一个
<appender-ref ref ="DB"/>
</appender> -->
<root level="info">
<appender-ref ref="consoleLog" />
</root>
<logger name="com.alibaba.druid" level="error" additivity="false">
<appender-ref ref="consoleLog" />
<appender-ref ref="fileErrorLog" />
</logger>
<logger name="org.springframework" level="error" additivity="false">
<appender-ref ref="consoleLog" />
<appender-ref ref="fileErrorLog" />
</logger>
<logger name="org.hibernate" level="error" additivity="false">
<appender-ref ref="consoleLog" />
<appender-ref ref="fileErrorLog" />
</logger>
<logger name="org.apache" level="error" additivity="false">
<appender-ref ref="consoleLog" />
<appender-ref ref="fileErrorLog" />
</logger>
<logger name="com.example.demo" level="debug" additivity="false">
<appender-ref ref="fileInfoLog" />
<appender-ref ref="fileErrorLog" />
<appender-ref ref="consoleLog" />
<!-- <appender-ref ref="ASYNC" /> -->
</logger>
</configuration>
2.建议使用日志加上判断
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
private static final Logger LOGGER = LoggerFactory.getLogger(xxx.class);
if(logger.isDebugEnabled()){
logger.debug("test logger helo");
}
3.使用logback 保存到数据库
3.1.在jar包中找到sql建表语句,并执行
logback-classic-1.2.3-sources.jar
ch.qos.logback.classic.db.script.mysql.sql
3.2添加配置appender
<appender name="DB" class="ch.qos.logback.classic.db.DBAppender">
<connectionSource class="ch.qos.logback.core.db.DriverManagerConnectionSource">
<driverClass>com.mysql.jdbc.Driver</driverClass>
<url>jdbc:mysql://xxxx:3306/log?useUnicode=true&characterEncoding=UTF-8</url>
<user>root</user>
<password>root</password>
</connectionSource>
</appender>
<appender name ="ASYNC" class= "ch.qos.logback.classic.AsyncAppender">
不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志
<discardingThreshold >0</discardingThreshold>
更改默认的队列的深度,该值会影响性能.默认值为256
<queueSize>512</queueSize>
添加附加的appender,最多只能添加一个
<appender-ref ref ="DB"/>
</appender>
3.3配置logger
<logger name=”xxxxxx” level=”info” additivity=”false”>
<appender-ref ref=”ASYNC” />
</logger>
4.logback的jar包
<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.25</version>
</dependency>
<!-- https://mvnrepository.com/artifact/ch.qos.logback/logback-core
logback-core:提供了LogBack的核心功能,是另外两个组件的基础 -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.2.3</version>
</dependency>
<!-- 实现了Slf4j的API,所以当想配合Slf4j使用时,需要引入logback-classic-->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>
<!-- 为了集成Servlet环境而准备的,可提供HTTP-access的日志接口-->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-access</artifactId>
<version>1.2.3</version>
</dependency>