spring-boot日志

默认情况下,Spring Boot会用Logback来记录日志,并用INFO级别输出到控制台。并且默认spring Boot自动加载了Logback依赖,无需手动引用任何依赖.

看完这个不会配置 logback ,请你吃瓜!

日志级别优先级

  • TRACE < DEBUG < INFO < WARN < ERROR < FATAL

logBack的公共配置

  • 默认Spring Boot配置日志输出到控制台,并没有输出到日志文件
  • 我们可以手动修改application.yml配置文件,新增内容如下:
      logging:
        pattern:
           #日志格式化
          console: "%d - %msg%n"
        path: /var/log/spring
        file: /var/log/spring/lxf.log
        #针对固定包下信息规定日志级别
        level:
         com.example.readinglist: info
    
    注意:日志配置, path和file不能同时使用,如果要同时使用则logging.file生 效,logging.path失效

代码测试

  • HelloWorld.java
    package com.example.readinglist.controllers;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RestController;
    @RestController
    public class HelloWorld {
      private final Logger logger =     LoggerFactory.getLogger(HelloWorld.class);
        @GetMapping(value = "/hello")
        public String testHello()
        {
            //日志级别从低到高分为TRACE < DEBUG < INFO < WARN <   ERROR < FATAL,如果设置为WARN,则低于WARN的信息都不会输出。
            logger.trace("日志输出 trace");
            logger.debug("日志输出 debug");
            logger.info("日志输出 info");
            logger.warn("日志输出 warn");
            logger.error("日志输出 error");
            return "hello world!";
        }
    }
    

自定义xml文件详细配置logBack

  • 自定义xml文件配置会覆盖掉application.yml中的logging相关配置
  • logback-spring.xml配置文件放在 src/main/resources 目录下,内容如下:
 <?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">

   <contextName>logback-demo</contextName>
   <!--<property name="logback.logdir" value="/home/lxf/test/logs"/>
   <property name="logback.appname" value="app"/>-->

   <!--application.yml 传递参数,不能使用logback 自带的<property>标签 -->
   <springProperty scope="context" name="logback.appname" source="logback.appname"/>
   <springProperty scope="context" name="logback.logdir" source="logback.logdir"/>

   <!--输出到控制台 自定义配置 ConsoleAppender-->
   <appender name="consoleLog1" class="ch.qos.logback.core.ConsoleAppender">
       <!--展示格式 layout-->
       <layout class="ch.qos.logback.classic.PatternLayout">
           <pattern>
               <pattern>%d{HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36} - %msg%n</pattern>
           </pattern>
       </layout>
       <!--
       <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>ERROR</level>
       </filter>
        -->
   </appender>


   <!--输出到日志记录到文件,自定义配置,该配置会忽略application.yml中的日志配置logging相关失效 -->
   <appender name="fileInfoLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
       <!--如果只是想要 Info 级别的日志,只是过滤 info 还是会输出 Error 日志,因为 Error 的级别高,
       所以我们使用下面的策略,可以避免输出 Error 的日志-->

       <!--日志名称,如果没有File 属性,那么只会使用FileNamePattern的文件路径规则
           如果同时有<File>和<FileNamePattern>,那么当天日志是<File>,明天会自动把今天
           的日志改名为今天的日期。即,<File> 的日志都是当天的。
       -->
       <File>${logback.logdir}/info.${logback.appname}.log</File>
       <!--滚动策略,按照时间滚动 TimeBasedRollingPolicy-->
       <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
           <!--文件路径,定义了日志的切分方式——把每一天的日志归档到一个文件中,以防止日志填满整个磁盘空间-->
           <FileNamePattern>${logback.logdir}/info.${logback.appname}.%d{yyyy-MM-dd}.log</FileNamePattern>
           <!--只保留最近90天的日志-->
           <maxHistory>90</maxHistory>
           <!--用来指定日志文件的上限大小,那么到了这个值,就会删除旧的日志-->
           <!--<totalSizeCap>1GB</totalSizeCap>-->
       </rollingPolicy>
       <!--日志输出编码格式化-->
       <encoder>
           <charset>UTF-8</charset>
           <pattern>%d [%thread] %-5level %logger{36} %line - %msg%n</pattern>
       </encoder>
   </appender>

   <!--指定最基础的日志输出级别-->
   <root level="INFO">
       <!--appender将会添加到这个loger-->
       <appender-ref ref="consoleLog1"/>
       <!--<appender-ref ref="fileInfoLog"/>-->
   </root>

   <!-- 测试环境+开发环境. 多个使用逗号隔开. -->
   <springProfile name="test,dev">
       <logger name="com.example.readinglist" level="DEBUG" additivity="false">
           <!--引用控制台输出样式-->
           <appender-ref ref="consoleLog1"/>
           <!--引用文件输出样式-->
           <appender-ref ref="fileInfoLog"/>
       </logger>
   </springProfile>

   <!-- 生产环境. -->
   <springProfile name="prod">
       <logger name="com.example.readinglist" level="INFO" additivity="false">
           <appender-ref ref="consoleLog1"/>
           <appender-ref ref="fileInfoLog"/>
       </logger>
   </springProfile>

</configuration>
  • application.yml 配置文件内容
     spring:
       #引入开发环境,在logback-spring.xml中不同环境,记录不同日志级别信息
        profiles:
        active: dev
    #配置自定义日志变量信息,在logback-spring.xml中引用
    logback:
      #日志路径
      logdir: /home/lxf/test/logs
      #日志文件名
      appname: lxf-spring-log-test.log
    

参考文章:

logback 配置详解(一)——logger、root
http://m.blog.csdn.net/inke88/article/details/75007649
slf4j+logback SLF4J和Logback日志框架详解
http://blog.csdn.net/qq_28893679/article/details/78327952
myslbatis输出sql语句配置

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,817评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,329评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,354评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,498评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,600评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,829评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,979评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,722评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,189评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,519评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,654评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,329评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,940评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,762评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,993评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,382评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,543评论 2 349

推荐阅读更多精彩内容