logback
SpringBoot会默认使用logback作为日志框架。SpringBoot会默认加载classpath:logback.xml或者classpath:logback-spring.xml或者classpath:logback-spring.groovy等文件作为日志配置文件。
也可以在系统配置文件中指定SpringBoot加载哪一个文件作为日志配置文件,在application.properties文件中增加:logging.config=classpath:xxx.xml 即可指定xxx.xml为日志配置文件。
如果是SpringBoot的项目的话,直接把logback-spring.xml配置文件放在src/main/resources文件夹下即可

使用步骤
一、构建Springboot项目。spring-boot-starter-parent依赖中包括logback的相关依赖
二、新建logback-spring.xml文件,放在src/main/resources文件夹
application.properties
#logback.loghome=E:/log
logback.loghome=log
logback.logfile=logFile
logback.format=%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36}:%L- %msg%n
logback-spring.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/2002/xmlspec/dtd/2.10/xmlspec.dtd">
<configuration>
<property resource="application.properties"/>
<springProperty scope="context" name="log-dir" source="logback.loghome"/>
<springProperty scope="context" name="log-name" source="logback.logfile"/>
<springProperty scope="context" name="CONSOLE_LOG_PATTERN" source="logback.format"/>
<!-- 控制台 -->
<appender name="consoleAppender"
class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<!-- 日志格式 -->
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
<!-- 日志编码 -->
<charset class="java.nio.charset.Charset">UTF-8</charset>
</encoder>
</appender>
<!-- 日志文件 -->
<appender name="fileAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 日志输出位置 -->
<file>${log-dir}/${log-name}.log</file>
<!-- 滚动策略 策略会将过时的日志,另存到指定的文件中(无该文件则创建) -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 文件的全路径名模板把因为 过时 或 过大 而拆分后的文件也保存到目启动的目录下的log文件夹下 -->
<fileNamePattern>${log-dir}/${log-name}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<!-- 保存7天以内的日志文件-->
<MaxHistory>7</MaxHistory>
<!-- 滚动策略 里嵌套了一个SizeAndTimeBasedFNATP策略,在每天都会拆分日志的前提下,当天日志大于规定大小也进行拆分并以【%i】进行区分从0开始 -->
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>3MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<!-- 日志输出格式 -->
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
<!-- 日志编码 -->
<charset class="java.nio.charset.Charset">UTF-8</charset>
</encoder>
</appender>
<!--指定日志级别,日志级别有: trace|debug|info|warn|error|fatal-->
<root level="info">
<appender-ref ref="consoleAppender" />
<appender-ref ref="fileAppender" />
</root>
</configuration>
三、在项目中使用日志
@Controller
public class MyController {
static final Logger log = LoggerFactory.getLogger(MyController .class);
@RequestMapping(value = "/test")
public String test() {
log.info("11223344");
log.error("22334455");
return "hello world";
}
}
可以使用@Slf4j简化开发
@Controller
@Slf4j
public class MachineController {
//static final Logger log = LoggerFactory.getLogger(MachineController.class);
@RequestMapping(value = "/test")
public String test() {
log.info("11223344");
log.error("22334455");
return "hello world";
}
}
5508

被折叠的 条评论
为什么被折叠?



