SpringBoot之日志
1.关于日志级别
error > warn > info > debug > trace
springboot默认日志级别是
info
我们可以在springboot的默认配置文件中修改日志级别
logging.level
是
map
类型, 我们可以指定不同包下使用不同的日志级别
logging:
level:
com.atguigu: trace
2.以文件形式打印日志logging.file.name
springboot默认日志的输出方式是在
控制台
输出, 通过在springboot默认配置文件中配置
logging.file.name
可以使日志以文件形式输出
-
当不指定日志文件的具体位置, 只指定文件名字时, 日志文件默认会生成在项目目录下
logging: file: name: boot.log
-
当指定日志文件的具体位置时, 日志文件会生成在指定的位置
logging: file: name: D:/boot.log
这种方式既可以指定日志文件的生成位置, 也可以指定日志文件的名字
3.以文件形式打印日志logging.file.path
在springboot的默认配置文件中配置
logging.file.path
属性, 指定日志文件的路径, 日志生成后将会在指定的路径处生成一个名为
spring.log
的日志文件
logging:
file:
path: /spring/log #在项目所在磁盘根目录下的spring目录下的log目录下生成日志文件
这种方式只可以指定日志文件的生成位置, 日志文件的名字只会使用默认的
spring.log
4.日志输出格式
-
控制台
在springboot默认配置文件中配置
logging.pattern.console
-
文件
在springboot默认配置文件中配置
logging.pattern.file
5.指定日志配置文件
在类路径下放上每个日志框架自己的配置文件即可, springboot就不使用他默认的日志配置了
Logging System | Customization |
---|---|
Logback |
,
,
, or
|
Log4j2 |
or
|
JDK (Java Util Logging) |
|
当日志配置命名为
logback.xml
时, 这个配置直接就被日志框架识别了
当日志配置命名为
logback-spring.xml
时, 这个配置由springboot解析识别, 可以使用更高级的功能, 例如
springProfile
, 他与springboot中的
Profiles
对应, 在springboot默认配置文件中激活指定Profiles, 日志配置也将改变
<springProfile name="staging">
<!-- configuration to be enabled when the "staging" profile is active -->
</springProfile>
6.切换日志框架
-
springboot默认使用
spring-boot-starter-logging
启动器, 使用这个启动器默认使用
Logback
进行日志记录, 如果要使用
Log4j2
进行日志记录, 那么可以切换
spring-boot-starter-log4j2
启动器 -
具体切换方法为, 将默认
spring-boot-starter-logging
启动器排除, 使用
spring-boot-starter-log4j2
启动器<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <!--排除默认spring-boot-starter-logging启动器--> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> </exclusions> </dependency> <!--使用spring-boot-starter-log4j2启动器--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j2</artifactId> </dependency>
-
切换log4j日志框架
首先排除日志框架的实现jar, 比如偷梁换柱jar, log4j-to-slf4j.jar, 和logback-classic.jar(logback实现jar), 然后引入log4j的实现jar
<dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </dependency>
SLF4J官网: http://www.slf4j.org/