Java 有很多日志系统,例如,Java Util Logging, Log4J, Log4J2, Logback 等。Spring Boot 也提供了不同的选项,比如日志框架可以用 logback 或 log4j 等。

默认的日志框架 logback

例如,maven 依赖中添加了 spring-boot-starter-logging。

  1. <dependency>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter-logging</artifactId>
  4. </dependency>

那么, Spring Boot 应用将自动使用 logback 作为应用日志框架, Spring Boot 启动的时候,由 org.springframework.boot.logging.Logging.Logging-Application-Listener 根据情况初始化并使用。

值得注意的是,默认情况下,Spring Boot 使用 logback 作为应用日志框架。因为 spring-boot-starter 其中包含了 spring-boot-starter-logging,该依赖内容就是 Spring Boot 默认的日志框架 logback。

日志级别

默认情况下,Spring Boot 配置 ERROR, WARN, INFO 三种日志级别。如果需要 Debug 级别的日志。在 src/main/resources/application.properties 中配置数据源信息。

  1. debug=true

此外,配置 logging.level.* 来具体输出哪些包的日志级别。

例如

  1. logging.level.root=INFO
  2. logging.level.org.springframework.web=DEBUG

日志文件

默认情况下, Spring Boot 日志只会输出到控制台,并不会写入到日志文件,因此,对于正式环境的应用,我们需要通过在 application.properites 文件中配置 logging.file 文件名称和 logging.path 文件路径,将日志输出到日志文件中。

  1. logging.path = /var/tmp
  2. logging.file = xxx.log
  3. logging.level.root = info

如果只配置 logging.path,在 /var/tmp文件夹生成一个日志文件为 spring.log。如果只配置 logging.file,会在项目的当前路径下生成一个 xxx.log 日志文件。

值得注意的是,日志文件会在 10MB 大小的时候被截断,产生新的日志文件。

常用的日志框架 log4j

如果,我们希望使用 log4j 或者 log4j2,我们可以采用类似的方式将它们对应的依赖模块加到 Maven 依赖中。

  1. <dependency>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter-log4j</artifactId>
  4. </dependency>

或者

  1. <dependency>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter-log4j2</artifactId>
  4. </dependency>

log4j 依赖模块加到 Maven 依赖中后,在 src/main/resources 目录下加入 log4j-spring.properties 配置文件。Spring Boot 官方推荐优先使用带有 –spring 的文件名作为你的日志配置, 例如 log4j-spring.properties,当然使用 log4j.properties 也是支持的。

现在,我们就可以使用 log4j 日志进行配置使用。log4j 配置细节就不展开讲解了,对于更多log4j的用法,可以参考相关文献。

源代码

相关示例完整代码: springboot-action

(完)

如果觉得我的文章对你有帮助,请随意打赏。

最新文章

  1. EasyPR--开发详解(2)车牌定位
  2. 几个毫无节操纯属恶搞的JavaScript插件
  3. 蓝牙-HCI错误码列表
  4. Javascript AMD学习
  5. JRE 1.8.0_65/66 Certified with Oracle E-Business Suite
  6. PeopleSoft登录流程
  7. 实习感悟——SQL语句
  8. Yii入门教程
  9. hadoop博客 oschina
  10. java中的递归方法
  11. win8.1 usb3 速度慢的解决方法
  12. C++虚函数表分析
  13. SQL 比较中文字符串
  14. SpringMVC与Struts2的主要区别
  15. Java 设计模式(概述)
  16. linux系统执行mysql脚本:Can&#39;t connect to local MySQL server through socket &#39;/tmp/mysql.sock&#39;
  17. 在 mingw32 上编译 libvpx 1.7.0 时的注意事项
  18. SV class
  19. OpenSSL-Win32,rsa,私钥,公钥,1024,2048
  20. Photoshop 基础七 位图 矢量图 栅格化

热门文章

  1. 使用ajax请求接口,跨域后cookie无法设置,全局配置ajax;及使用axios跨域后cookie无法设置,全局配置axios
  2. git commit -am &quot;remark&quot; 提交
  3. 【转】js 对象按照键值(不分区大小写)排序,生成签名方法
  4. 两个有序数组的中位数(第k大的数)
  5. java基础语法运算符
  6. List.contains()与自动拆箱
  7. !important 的绝对控制样式
  8. error TS2304: Cannot find name &#39;Promise&#39; &amp;&amp; TS2307: Cannot find module &#39;**&#39;
  9. Oracle.数据的增删改、表操作(创建,修改,删除)、数据类型
  10. ueditor自定义额外参数