springboot版本
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.4.RELEASE</version>
</parent>
resource下新建
logback.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">
<include resource="org/springframework/boot/logging/logback/defaults.xml" />
<property name="LOG_FILE" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}}/spring.log}"/>
<include resource="org/springframework/boot/logging/logback/console-appender.xml" />
<include resource="org/springframework/boot/logging/logback/file-appender.xml" />
<appender name="dbAppender" class="com.MyLogbackDBAppender">
<encoder>
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="CONSOLE" />
<appender-ref ref="dbAppender"/>
</root>
</configuration>
spring2.0之后的默认使用logback记录日志,默认的日志格式看着习惯了就不改动日志的格式 所以直接从spring包中复制默认的日志配置,新增appender,输出流指向自定义的MyLogbackDBAppender文件
MyLogbackDBAppender.class
package com;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import ch.qos.logback.classic.spi.ILoggingEvent;
import ch.qos.logback.core.ConsoleAppender;
import ch.qos.logback.core.Layout;
/***
* 自定义logback Appender
*
* @date 2020年1月11日 下午5:09:10
* @author hwm
*/
@Component
public class MyLogbackDBAppenderextends ConsoleAppender<ILoggingEvent> {
private Logger logger = LoggerFactory.getLogger(LogbackDBAppender.class);
Layout<ILoggingEvent> layout;
@Override
public void append(ILoggingEvent event) {
if (event == null) {
return;
}
try {
// event:日志信息对象
// 此处写日志存储逻辑
} catch (Exception e) {
e.printStackTrace();
logger.error(e.getMessage());
}
}
}