#日志输出配置
logging:
level:#根据级别声明词语,选择该目录下要输出的日志
root: INFO
com.paixi.orders.mapper: DEBUG#输出debug级别的日志,此时会打印sql语句
org.springframework: INFO
pattern:
console: "%d{yyyy/MM/dd-HH:mm:ss} %-5level [%thread] %logger- %msg%n"
file: "%d{yyyy/MM/dd-HH:mm} [%thread] %-5level %logger- %msg%n"
logging下还有一个目录是 path,可以配置日志文件的保存路径
#日志输出配置
logging:
#配置日志文件路径
# 可以使用绝对或者相对路径
# 当 logging.path 与 logging.file 同时配置时,则以 logging.file 为准,logging.path不再生效
# path: D:/prise-logs
file: D:/prise-logs/${spring.application.name}.log
level:
xatu.zsl: debug #不同目录下的日志可配置不同级别
实际问题:
上面实际操作后发现path和file同时配置,发现path的配置无效,最终只会在项目根目录生成 ${spring.application.name}.log文件,不会在我们指定的目录下生成,代码如下。
#日志输出配置
logging:
#配置日志文件路径
path: D:/prise-logs
file: ${spring.application.name}.log
其原因是,没有logback-spring.xml配置文件,系统只认识logging.file,还不认识logging.path。
为什么不配置logback.xml,因为logback.xml会先application.yml加载,而logback-spring.xml会后于application.yml加载,这样我们在application.yml文中设置日志文件名称和文件路径才能生效
所以如果只是简单的输出,可以直接指定file的路径。否则还需要新建一个logback-spring.xml文件来辅助配置
日志输出格式设置
%d{HH: mm:ss.SSS}——日志输出时间
%thread——输出日志的进程名字,这在Web应用以及异步任务处理中很有用
%-5level——日志级别,并且使用5个字符靠左对齐
%logger{36}——日志输出者的名字
%msg——日志消息
%n——平台的换行符
-%clr(xxx) ——彩色显示,例如-%clr(%-5level)
ThresholdFilter为系统定义的拦截器,例如我们用ThresholdFilter来过滤掉ERROR级别以下的日志不输出到文件中。如果不用记得注释掉,不然你控制台会发现没日志