热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

springbootLogging的配置以及使用详解

这篇文章主要介绍了springbootLogging的配置以及使用详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

前言:该篇文章基本上是翻译的官方文档!

spring boot使用Commons Logging作为内部的日志系统,并且给Java Util Logging,Log4J2以及Logback都提供了默认的配置。如果使用了spring boot的Starters,那么默认会使用Logback用于记录日志。

一、Log format

spring boot中默认的日志输出格式如下:

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: [/*] 

以下项将会被输出:

1、日期和时间--精确到毫秒,并按照时间进行简单的排序
2、日志级别--ERROR,WARN,INFO,DEBUG,TRACE
3、进程ID号
4、日志内容,用"---"分隔符分开
5、线程名字--括在方括号中
6、日志的名字--通常对应的是类名

注意:Logback没有FATAL级别(映射到ERROR)

二、控制台输出

默认的日志配置将在写入控制台时回显消息,默认会回显ERROR,WARN,和INFO级别的消息,你同样可以在启动的时候,启用debug模式,启动命令如下:java -jar yourapp.jar --debug

注意:你同样可以在application.properties配置文件中指定debug=true,来开启debug,模式一旦开启了debug模式,那么控制台同时会输出容器信息,hibernate信息和spring boot的信息

三、文件输出

默认情况下,spring boot只会将日志输出到console,而不会输出到日志文件中,如果你想将日志写到日志文件中,那么需要在application.properties配置文件中设置logging.file或者是logging.path

注意:此处是或者的关系,也就是说,你配置logging.file或者是logging.path,效果是一样的。

下面的表格将显示如何进行配置文件输出:

logging.file logging.path Example 说明
      二者都不配置,则只输出到Console
指定文件   my.log 写入指定的日志文件。文件名可以是一个确切的
位置或相对目录
  指定的目录 /var/log 将日志文件写入指定的目录,目录可以是一个确切的位置或者是一个相对目录

默认情况下,如果日志文件的大小达到10Mb的话,就会被截断,输出到新的日志文件中。

注意:日志的配置是独立与实际的日志组件的,也就是说,如果为Logback指定配置的属性为logback.configurationFile,那么spring boot将不会管理该日志组件。

四、日志级别

所有支持的日志系统都可以通过Spring Environment来指定日志级别,例如application.properties,可以使用“logging.level.*=LEVEL”来指定日志的级别,"LEVEL"的取值可以是TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF。配置示例如下:

logging.level.root=WARN #root日志以WARN级别输出 
logging.level.org.springframework.web=DEBUG #org.springframework.web包下的日志以DEBUG级别输出 
logging.level.org.hibernate=ERROR #org.hibernate包下的日志以ERROR级别输出 

如果,我们需要指定我们的应用日志级别了,我们也可以使用同样的方式,如下:

logging.level.com.chhliu=INFO 

上面配置中的"com.chhliu"为我们应用的包名。

五、自定义日志输出格式

我们可以通过logging.pattern.file以及logging.pattern.level来配置我们需要的日志输出格式,例如:

logging.pattern.cOnsole=%d{yyyy/MM/dd-HH:mm:ss} [%thread] %-5level %logger- %msg%n 
logging.pattern.file=%d{yyyy/MM/dd-HH:mm} [%thread] %-5level %logger- %msg%n 

注意:以上配置,只对Logback起作用

六、使用Log4j打日志

前面说道,我们默认的是使用Logback来作为日志系统的,那么,如果我们想使用Log4j来打日志,怎么办了,我们需要在pom文件中加上Log4j的starter同时排除Logback,如下:

 
 org.springframework.boot 
 spring-boot-starter 
  
   
   org.springframework.boot 
   spring-boot-starter-logging 
   
  
 
 
 org.springframework.boot 
 spring-boot-starter-log4j 
 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


推荐阅读
  • 标题: ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • Tomcat/Jetty为何选择扩展线程池而不是使用JDK原生线程池?
    本文探讨了Tomcat和Jetty选择扩展线程池而不是使用JDK原生线程池的原因。通过比较IO密集型任务和CPU密集型任务的特点,解释了为何Tomcat和Jetty需要扩展线程池来提高并发度和任务处理速度。同时,介绍了JDK原生线程池的工作流程。 ... [详细]
  • 本文介绍了关于apache、phpmyadmin、mysql、php、emacs、path等知识点,以及如何搭建php环境。文章提供了详细的安装步骤和所需软件列表,希望能帮助读者解决与LAMP相关的技术问题。 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • Servlet多用户登录时HttpSession会话信息覆盖问题的解决方案
    本文讨论了在Servlet多用户登录时可能出现的HttpSession会话信息覆盖问题,并提供了解决方案。通过分析JSESSIONID的作用机制和编码方式,我们可以得出每个HttpSession对象都是通过客户端发送的唯一JSESSIONID来识别的,因此无需担心会话信息被覆盖的问题。需要注意的是,本文讨论的是多个客户端级别上的多用户登录,而非同一个浏览器级别上的多用户登录。 ... [详细]
  • SpringMVC工作流程概述
    SpringMVC工作流程概述 ... [详细]
  • 阿,里,云,物,联网,net,core,客户端,czgl,aliiotclient, ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • docker增加restart=always, docker重启后自动启动容器的方法
    本文介绍了在运行docker容器时如何添加参数来保证每次docker服务重启后容器也自动重启的方法,以及如何使用命令来更新已启动的容器。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • PHP函数实现分页含文本分页和数字分页【PHP】
    后端开发|php教程PHP,分页后端开发-php教程最近,在项目中要用到分页。分页功能是经常使用的一个功能,所以,对其以函数形式进行了封装。影视网源码带充值系统,vscode配置根 ... [详细]
  • 面试经验分享:华为面试四轮电话面试、一轮笔试、一轮主管视频面试、一轮hr视频面试
    最近有朋友去华为面试,面试经历包括四轮电话面试、一轮笔试、一轮主管视频面试、一轮hr视频面试。80%的人都在第一轮电话面试中失败,因为缺乏基础知识。面试问题涉及 ... [详细]
  • 在IDEA中运行CAS服务器的配置方法
    本文介绍了在IDEA中运行CAS服务器的配置方法,包括下载CAS模板Overlay Template、解压并添加项目、配置tomcat、运行CAS服务器等步骤。通过本文的指导,读者可以轻松在IDEA中进行CAS服务器的运行和配置。 ... [详细]
author-avatar
俊廷淑芳淑幸
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有