
创建一个SpringBoot项目. 根据官方文档,默认情况下选择Logback来记录日志. Logback也是一个相对使用的框架. 以下各节默认使用logback作为日志输出框架.
默认情况下,如果使用“启动器”,则使用Logback进行日志记录. 还包括适当的Logback路由,以确保使用Java Util Logging,Commons Logging,Log4J或SLF4J的从属库都可以正常工作.
完整的pom依赖关系如下,即不需要引入特殊的依赖关系,这基本上是SpringBoot项目的最基本的项目结构.
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.4.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<spring-cloud.version>Finchley.RELEASE</spring-cloud.version>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</pluginManagement>
</build>
<repositories>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
编写一个简单的日志测试

@Slf4j
@SpringBootApplication
public class Application {
public Application() {
log.debug("---> debug start! <------");
log.info("---> info start! <------");
log.warn("---> warn start! <------");
log.error("---> error start! <------");
System.out.println("===> System.out.println <=====");
}
public static void main(String[] args) {
SpringApplication.run(Application.class);
}
}
查看控制台的输出,info,warn,error可以正常输出,并且输出格式包含一些附加信息,System.out也可以正常输出,而调试日志不是
2018-09-26 14:16:01.136 INFO 38924 --- [ main] com.git.hui.boot.log.Application : ---> info start! <------ 2018-09-26 14:16:01.137 WARN 38924 --- [ main] com.git.hui.boot.log.Application : ---> warn start! <------ 2018-09-26 14:16:01.137 ERROR 38924 --- [ main] com.git.hui.boot.log.Application : ---> error start! <------ ===> System.out.println <=====
接下来,在输入logback的配置文件之前,请查看默认配置以及如何使用它.
默认情况下不输出调试日志. 如果需要,您需要将debug = true属性添加到配置文件中. 您还可以设置trace = true以查看应用程序输出的跟踪日志.

但是,即使启用了调试,上述测试中的调试日志仍然不存在. 然后,我需要输出上面的调试日志. 我应该如何设置?
尽管以上配置会在控制台上打印一些调试日志,但不会在我们的业务代码中打印调试日志. 您需要启用它. 需要以下设置.
logging.level.root=DEBUG logging.level.org.springframework=INFO logging.level.org.hibernate=ERROR
以上配置是指定包下的日志输出级别,root是默认级别
完成上述配置后,再次执行以上代码,输出如下

默认输出格式如上一个屏幕截图所示. 如果要更改输出日志格式,可以对其进行修改以修改属性. 一个例子如下
logging.pattern.console=%date{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
再次运行,输出样式如下
关于该属性值的组成原理spring日志配置,当我们稍后讨论logback.xml配置文件的语法时,我们会一遍又一遍地讲
说明

还有一个参数可以设置文本的颜色. 就个人而言,这不是很实用. 只需按如下所示粘贴配置即可.
## 检测终端是否支持ANSI,是的话就采用彩色输出
spring.output.ansi.enabled=detect
## %clr(){} 格式,使文本以蓝色输出
logging.pattern.console=%clr(%d{yyyy-MM-dd HH:mm:ss.SSS} %thread] %-5level %logger{36} - %msg%n){blue}
以上所有日志均输出到控制台. 在实际的生成环境中,通常需要将日志写入文件spring日志配置,该文件可以随时轻松查看. 通过设置相关参数也可以轻松实现.
## 输出的日志文件 logging.file=logs/info.log ## 当文件超过1G时,归档压缩 logging.file.max-size=1GB ## 日志文件最多保存3天 logging.file.max-history=3
同一代码执行两次,输出如下. 两次的输出都可以在日志文件中找到. 与控制台相比,检查历史日志更加方便.
在上图中,控制台的输出格式与日志文件的输出格式不同,因为控制台的输出样式先前已被修改;如果要修改文件中的日志格式,还可以修改配置logging.pattern.file来实现
尽管上面的配置是可以的,但对于Logback,仍然有许多不容易配置的高级功能. 因此,SpringBoot仍然支持加载logback-spring.xml配置文件来定义与日志相关的参数,只需要在资源文件中,只需将logback-spring.xml或logging.config添加到目录中即可.
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-154709-1.html
晒出来啊