原创作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/V1haoge/p/7613854.html

这是SpringBoot的日志内容

26 日志
  Spring使用CommonLogging作为内置日志记录工具,但也保留了底层日志的实现。默认的配置提供了Java Util Logging、Log4J2和LogBack。在不同情况下,可以通过预先的配置来选择控制台输出或者文件输出。
  默认情况下,如果你使用了SpringBoot的"Starters",将会使用LogBack作为日志工具。其拥有适当的回退路由,以确保Java Util Logging、Log4J2和Commons Logging的依赖库可以正常工作。
  注意:Java拥有许多的日志框架。如果上面的日志工具使你迷惑不堪,请不要担心。一般情况下,并不需要你更改日志依赖,SpringBoot也会工作的很好。
26.1 日志格式
  SpringBoot的默认日志输出如下:

2014-03-05 10:57:51.112 INFO 45469 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet Engine: Apache Tomcat/7.0.52
2014-03-05 10:57:51.253 INFO 45469 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
2014-03-05 10:57:51.253 INFO 45469 --- [ost-startStop-1] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 1358 ms
2014-03-05 10:57:51.698 INFO 45469 --- [ost-startStop-1] o.s.b.c.e.ServletRegistrationBean : Mapping servlet: 'dispatcherServlet' to [/]
2014-03-05 10:57:51.702 INFO 45469 --- [ost-startStop-1] o.s.b.c.embedded.FilterRegistrationBean : Mapping filter: 'hiddenHttpMethodFilter' to: [/*]

  以下项目将会被输出:

  • 日期和时间——毫秒级精度,易排序
  • 日志级别——ERROR、WARN、INFO、DEBUG、TRACE
  • 进程ID
  • ---——用于区分真正日志信息的分隔符
  • 线程名称——使用方括号括住(控制台输出时可能会被截断)
  • 日志名称——资源类名(通常是简化的)
  • 日志信息

  注意:LogBack工具并没有FATAL级别(这个级别会被映射到ERROR)
26.2 控制台输出
  采用默认的日志配置日志信息将会被输出到控制台。默认情况下ERROR、WARN和INFO级别的信息将会被记录显示。你也可以通过启动应用时添加--debug标签来开启debug模式。

$ java -jar muapp.jar --debug

  注意:你也可以在application.properties配置文件中添加debug=true来达到同样的目的。
  当使用debug模式时,核心记录器(包括内嵌容器、Hibernate和SpringBoot)被配置用来输出更多信息。debug模式下并不会配置你的应用来记录DEBUG级别的所有信息。
或者,你也可以通过类似的两种方法开启trace模式,这种模式将会输出核心记录器的跟踪日志。
26.2.1 着色输出
  如果你的终端支持ANSI,着色输出的日志信息讲可以提升阅读性。你可以设置spring.output.ansi.enabled为一个合适的值来覆盖自动的获取的值。
  颜色编码使用%clr来进行配置。在最简单的形式中,转换器将根据日志级别对输出进行着色,例如:

%clr(%5p)

  日志级别与着色的匹配关系如下:

Level (日志级别) Color(着色颜色)
FATAL  Red
ERROR  Red
WARN  Yellow
INFO  Green
DEBUG  Green
TRACE  Green

  另外,你也可以为转换器添加一个选项的方式来指定颜色或者样式,例如将文本输出设置为黄色:

%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){yellow}

  下面是SpringBoot支持的颜色或者样式:

  • blue
  • cyan
  • faint
  • green
  • magenta
  • red
  • yellow

26.3 文件输出
  默认情况下,SpringBoot只会将日志输出到控制台,而不会输出到文件中。如果你想将日志不只输出到控制台,还是输出到文件中,你需要在application.properties文件中进行logging.file或者logging.path属性设置。
  下表中显示了logging.*属性如何一起来使用:

logging.file logging.path Example Description
(none) (none)   仅输出到控制台
指定文件 (none) my.log 输出到指定文件,名称可以是准确的位置,也可以是相对于当前目录的
(none) 指定目录 /var/log  将spring.log输出到指定目录,名称可以是准确的位置,也可以是相对于当前目录的

  表26.1 日志属性

  默认情况下,日志文件会记录控制台输出、ERROR、WARN和INFO级别的日志信息,并且在达到10M的时候重新创建文件来记录。
  注意:SpringBoot的日志系统在应用程序生命周期的早期就完成初始化,因此通过@PropertiesSource注解加载的配置文件中的属性将不会起到应有的作用(不生效)。
  注意:日志的属性与实际的日志基础结构无关。因此,指定的配置内容(就像LogBack的logback.configurationFile属性)并没有被SpringBoot所管理。
26.4 日志级别
  所有支持的日志系统都拥有在Spring Environment(环境就如SpringBoot中的application.properties)中使用logging.level.*=LEVEL的方式进行日志级别的配置,其中LEVEL可以是TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF之一。根日志可以使用属性logging.level.root进行配置,例如:(在application.properties中)

1 logging.level.root=WARN2 logging.level.org.springframework.web=DEBUG3 logging.level.org.hibernate=ERROR

  注意:默认情况下,SpringBoot会重定义Thymeleaf模板INFO信息,以使其可被DEBUG级别的日志所记录。这有助于减少标准日志输出中的乱象。有关如何在你的配置中重定义请参照LevelRemappingAppender。
26.5 自定义日志配置
  各类日志系统可被类路径下的适当的库所激活,然后被类根路径下的或者Spring环境中的logging.config属性所指定的路径下的适合的配置文件所自定义。
  你可以通过org.springframework.boot.logging.LoggingSystem系统属性来强制SpringBoot使用某一指定的日志系统。其值为实现LoggingSystem的完全限定名。你也可以为其设置为none来似的日志功能完全失效。
  注意:因为日志系统在ApplicationContext初始化之前就完成了初始化。所以无法通过@Configuration中的@PropertiesSources来控制日志系统。系统属性和SpringBoot的基本配置文件效用完好。
  基于你的日志系统,以下文件将会被加载:

Logging System Customization(自定义)
LogBack  logback-spring.xml;ogback-spring.groovy;logback.xml;logback.groovy
Log4j2  log4j2-spring.xml;log4j2.xml
JDK (Java Util Logging) logging.properties

  注意:如果可能,我们建议您使用- spring变量来配置日志配置(例如logBack-spring.xml而不是logBack.xml)如果你使用的以往的配置路径,Spring将不能完整的控制日志的初始化。
  注意:Java Util日志中有一些已知的类加载问题,这些问题在从“可执行jar”中运行时引起问题。我们建议你尽可能避免使用它。
  为了帮助定制,一些其他属性从Spring环境转移到系统属性:

Spring Environment  System Property Comments(说明)
logging.exception-conversion-word LOG_EXCEPTION_CONVERSION_WORD  记录异常时使用的转换词
logging.file LOG_FILE  在默认的日志配置中使用
logging.path LOG_PATH  在默认的日志配置中使用
logging.pattern.console CONSOLE_LOG_PATTERN  用于控制台日志输出的日志格式(仅支持默认的LogBack配置)
logging.pattern.file FILE_LOG_PATTERN  用于文件输出日志的日志格式(仅支持默认的额LogBack配置)
logging.pattern.level LOG_LEVEL_PATTERN  用于渲染日志级别的样式(默认为%5p)(仅支持默认的额LogBack配置)
PID  PID  当前进程ID(在可能的情况下发现并没有定义为系统环境变量)

  所有支持的日志系统都可以在解析其配置文件时查阅系统属性。例如spring-boot.jar中的默认配置。
  如果你想在一个日志属性中使用占位符,你需要使用SpringBoot的语法,而不是底层框架的语法。另外如果你在使用LogBack,你需要使用:来分隔一个属性和其默认值,而不是:-。
  通过覆盖LOG_LEVEL_PATTERN属性(或者LogBack中的logging.pattern.level属性),你可以在日志行中添加MDC(Mapped Diagnostic Context映射调试上下文:是 log4j 和 logback 提供的一种方便在多线程条件下记录日志的功能)和ad-hoc(点对点)内容。例如:如果你使用logging.pattern.level=user:%X{user} %5p配置,则默认的日志输出格式将会包含一个名为user的MDC条目(当然需要存在才能显示)例如:

2015-09-30 12:30:04.031 user:juergen INFO 22174 --- [ nio-8080-exec-0] demo.Controller Handling authenticated request

26.6 LogBack扩展
  SpringBoot为LogBack提供了许多扩展属性用于高级配置。你可以在你的logback-spring.xml配置文件中使用这些属性。
  注意:由于logback.xml文件加载的过于早(早于SpringBoot应用的启动),所以你不能在其中使用这些扩展属性,你需要使用logBack-spring.xml文件或者logging.config属性。
  注意:这些扩展属性无法与LogBack的配置扫描器一起使用(无法被扫描到),如果你尝试这样做,你会得到类似于下面的这样的错误记录:

ERROR in ch.qos.logback.core.joran.spi.Interpreter@4:71 - no applicable action for [springProperty], current ElementPath is [[configuration][springProperty]]
ERROR in ch.qos.logback.core.joran.spi.Interpreter@4:71 - no applicable action for [springProfile], current ElementPath is [[configuration][springProfile]

26.6.1 定制化的配置
  <springProfile>标签可用于在Spring配置文件中依据条件执行或者排除执行某些配置,其可用于<congfiguration>元素内的任何位置。使用name属性来指定那个配置切面可被执行。多个Profile可以使用以逗号分割的方式来指定。

1 <springProfilename="staging">
2 <!--configuration to be enabled when the "staging" profile is active-->
3 </springProfile>
4
5 <springProfilename="dev, staging">
6 <!--configuration to be enabled when the "dev" or "staging" profiles are active-->
7 </springProfile>
8
9 <springProfilename="!production">
10 <!--configuration to be enabled when the "production" profile is not active-->
11 </springProfile>

26.6.2 环境属性
  <springProperty>标签可以允许你从Spring环境中提取属性来用于LogBack。这在你从application.properties中获取关于LogBack配置的属性的值时很有效。这个标签和LogBack的<properties>标签类似的方式工作,并不是直接制定一个值,而是指定属性的来源(source属性)。你可以使用scope属性来保存属性,否则只会把存在本地。如果你想要指定一个可靠的值,以防其未被配置,你可以使用defaultValue属性来指定一个默认值。

1 <springPropertyscope="context"name="fluentHost"source="myapp.fluentd.host"defaultValue="localhost"/>
2 <appendername="FLUENT"class="ch.qos.logback.more.appenders.DataFluentAppender">
3     <remoteHost>${fluentHost}</remoteHost>
4 ...5 </appender>

  注意:source属性的值必须采用串的形式(例如:my.property.name)。然而可以使用轻松的规则将属性添加到环境中。

转载于:https://www.cnblogs.com/V1haoge/p/7613854.html

SpringBoot文档翻译系列——26.日志logging相关推荐

  1. SpringBoot基础系列-使用日志

    原创文章,转载请标注出处:<SpringBoot基础系列-使用日志> 一.概述 SpringBoot使用Common Logging进行日志操作,Common Logging是一个日志功能 ...

  2. springboot项目系列-论坛系统05全局异常处理+日志处理+MD5加密

    springboot项目系列-论坛系统05全局异常处理+日志处理使用了spring的AOP 论坛地址:http://www.cywloveyou.top 配置日志 logging:level:root ...

  3. 【SpringBoot DB系列】Jooq批量写入采坑记录

    [SpringBoot DB系列]Jooq批量写入采坑记录 前面介绍了jooq的三种批量插入方式,结果最近发现这里面居然还有一个深坑,我以为的批量插入居然不是一次插入多条数据,而是一条一条的插入-,这 ...

  4. SpringBoot中的SFL4J日志

    SpringBoot:底层是Spring框架,Spring框架默认使用的是JCL日志的抽象层 SpringBoot选用SLF4J和logback 如何系统地在系统中使用SLF4J 在开发的使用,日志记 ...

  5. springboot项目输入打印日志文件到本地

    springboot项目输入打印日志文件到本地 pom.xml中添加jar包: <dependency><groupId>ch.qos.logback</groupId& ...

  6. redis 系列26 Cluster高可用 (1)

    redis 系列26 Cluster高可用 (1) 原文:redis 系列26 Cluster高可用 (1) 一.概述 Redis集群提供了分布式数据库方案,集群通过分片来进行数据共享,并提供复制和故 ...

  7. python自动填日志_Selenium3+python自动化012+日志logging基本用法、高级用法

    1.关键字: login 登录 log 日志 logging python日志模块 2.什么叫日志: 日志用来记录用户行为或者代码的执行过程 3.日志使用的地方: 1.排错的时候需要打印很多细节来帮助 ...

  8. springboot mybatisplus 多数据源_【SpringBoot DB 系列】MybatisPlus 多数据源配置

    [SpringBoot DB 系列]Mybatis-Plus 多数据源配置 前面介绍了两种 Mybatis 的数据源配置,当然也少不了 mybatis-plus MyBatis-Plus (opens ...

  9. Python 日志logging模块初探及多线程踩坑(2)

    系列文章: Python 日志logging模块初探及多线程踩坑(1) Python 日志logging模块初探及多线程踩坑(2) 接着上面一篇文章,我们这篇来写一个多进程兼容且无损性能的 Timed ...

最新文章

  1. Python基本语法_运算符详解
  2. Tomcat管理平台
  3. excelvba怎么设置不打开文件自动保存_自从有了这个工具,我的Office操作已经快到慢不下来了!(升级篇)...
  4. 【Python入门】列表的常用操作,这十张图把它说的明明白白!
  5. IDEA安装Lombok插件失败的解决方案
  6. avs3 ts格式封装 标准_超能课堂(204):多媒体容器格式变迁录
  7. lighttpd,nginx,apache的性能负载比较
  8. anylogic和java,基于Anylogic的Java代码入门教程
  9. 常用的机器学习与深度学习算法简介
  10. 模拟退火算法求解超市布局问题
  11. 男人就是要对自己狠一点
  12. Dell EMC VxRail超融合节点升级混合云软件
  13. opencv微信二维码引擎的使用(for java)
  14. python如何输出日期_Python日期常用操作
  15. 爱阅书香之书源制作 POST请求方式
  16. 【电子技术】如何抑制共模、差模噪声?
  17. 【供参考,博主已经没有实验环境了】【中山大学东校区】【中大】【tp-link wr703n】【openwrt】【校园网inode】【无线路由】新版教程-搭载最小的认证客户端【C版oh3c】
  18. 基于DDD的现代ASP.NET开发框架--ABP系列文章总目录(转)
  19. 中国市级食品药品监督管理局将使用区块链技术以保证质量
  20. 【Python开发】Flask开发实战:个人博客(三)

热门文章

  1. 基于.NET Socket API 通信的综合应用
  2. Hive-RCFile文件存储格式
  3. Spring配置JPA的xml路径的问题
  4. 怎样在virtualbox下WIN7共享XP的文件
  5. 动易Ajax登陆调用
  6. 042_前端规范 2021-06-03
  7. AV音响和HiFi音响有什么区别?
  8. 如何有效练肩部肌肉增加肩宽并且避免斜方肌发达呢?
  9. 想更换手机卡,但它绑定了支付宝,微信,银行卡等,该怎么办啊?
  10. 什么是内容电商?核心是“内容”