requirednew基于xml配置日志不回滚_Spring Boot快速入门之(十):日志

c5c563f1b236c5e1c496e30ef680c8d7.png

【注】本文译自: https://www.tutorialspoint.com/spring_boot/spring_boot_logging.htm
Spring Boot 使用 Apache Commons logging 作为内部日志。Spring Boot 缺省配置提供对于 Java Util Logging, Log4j2 和 Logback 的支持。这样,我们可以配置控制台或者文件日志。
如果使用 Spring Boot 启动器,Logback 会提供很好的日志支持。此外,Logback 对 Common Logging、Util Logging、Log4J 和 SLF4J 的支持也不错。
Log 格式
缺省 Spring Boot 的日志格式如下图所示:

f0d08695f5fd31d48b2705b4918408b6.png


提供了以下信息:

  • DateTime 给出日志的日期和时间
  • Log level 显示 INFO, ERROR 或 WARN
  • Process ID
  • 用 --- 作为分隔符
  • Thread name 在 方括号 [] 内
  • Logger Name 显示源类名
  • 日志消息

控制台日志输出
默认日志消息会打印到控制台窗口。缺少情况下,“INFO”, “ERROR” 和 “WARN” 日志消息会在日志文件中打印。
如果要允许 debug 级别的日志,用命令行启动应用时加上 debug 标识,如下所示:
java –jar demo.jar --debug
也可以在 application.properties 中加入调试模式,如下所示:
debug = true
文件日志输出
默认情况下,所有的日志都会不打印到控制台窗口而不是在文件中。如果你要将日志打印到文件中,需要在 application.properties 文件中设置 logging.filelogging.path 属性。
可以如下所示设置日志文件路径,注意日志文件名为 spring.log。
logging.path = /var/tmp/
你也可以设置自己的日志文件名,如下所示:
logging.file = /var/tmp/mylog.log注意:文件在达到 10 MB 时将自动转储。
日志级别
Spring Boot 支持所有的日志级别,如 “TRACE”, “DEBUG”, “INFO”, “WARN”, “ERROR”, “FATAL”, “OFF”。可以在 application.properties 文件中定义根日志,如下所示:
logging.level.root = WARN注意: Logback 不支持 “FATAL” 级别的日志,它会被映射为 “ERROR” 级别的日志。
配置 Logback
Logback 支持基于 XML 的配置来处理 Spring Boot 日志配置。日志配置细节在 logback.xml 配置文件中。logback.xml 文件应当位于 classpath 路径下。
可以在 Logback.xml 文件中配置根级别日志,如下所示:
<?xml version = "1.0" encoding = "UTF-8"?>
<configuration>
<root level = "INFO">
</root>
</configuration>
可以在 Logback.xml 文件中配置 控制台 appender,如下所示:
<?xml version = "1.0" encoding = "UTF-8"?>
<configuration>
<appender name = "STDOUT" class = "ch.qos.logback.core.ConsoleAppender"></appender>
<root level = "INFO">
<appender-ref ref = "STDOUT"/>
</root>
</configuration>
可以在 Logback.xml 配置文件 appender,如下所示。注意需要在 file appender 中指定日志文件路径。
<?xml version = "1.0" encoding = "UTF-8"?>
<configuration>
<appender name = "FILE" class = "ch.qos.logback.core.FileAppender">
<File>/var/tmp/mylog.log</File>
</appender>
<root level = "INFO">
<appender-ref ref = "FILE"/>
</root>
</configuration>
可以在 logback.xml 文件中定义日志范式,也可以定义在控制台或者文件中的日志范式集,如下所示:
<pattern>[%d{yyyy-MM-dd'T'HH:mm:ss.sss'Z'}] [%C] [%t] [%L] [%-5p] %m%n</pattern>
完整的 logback.xml 文件如下,需要放在 class path 路径下:
<?xml version = "1.0" encoding = "UTF-8"?>
<configuration>
<appender name = "STDOUT" class = "ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>[%d{yyyy-MM-dd'T'HH:mm:ss.sss'Z'}] [%C] [%t] [%L] [%-5p] %m%n</pattern>
</encoder>
</appender>
<appender name = "FILE" class = "ch.qos.logback.core.FileAppender">
<File>/var/tmp/mylog.log</File>
<encoder>
<pattern>[%d{yyyy-MM-dd'T'HH:mm:ss.sss'Z'}] [%C] [%t] [%L] [%-5p] %m%n</pattern>
</encoder>
</appender>
<root level = "INFO">
<appender-ref ref = "FILE"/>
<appender-ref ref = "STDOUT"/>
</root>
</configuration>
下面的代码展示了如何在主类文件中加上 slf4j logger:
package com.tutorialspoint.demo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class DemoApplication {
private static final Logger logger = LoggerFactory.getLogger(DemoApplication.class);
public static void main(String[] args) {http://logger.info("this is a info message");
logger.warn("this is a warn message");
logger.error("this is a error message");
SpringApplication.run(DemoApplication.class, args);
}
}
控制台窗口输出如下所示:

cd0dac467835083a88e06d076a200eec.png


日志文件输出如下所示:

200a98794a8e5db6670092c65122751f.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值