spring-boot日志

2018-01-22  本文已影响25人  liangxifeng833

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

日志级别优先级

logBack的公共配置

代码测试

自定义xml文件详细配置logBack

 <?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>

参考文章: http://m.blog.csdn.net/inke88/article/details/75007649
slf4j+logback SLF4J和Logback日志框架详解
http://blog.csdn.net/qq_28893679/article/details/78327952
myslbatis输出sql语句配置

上一篇 下一篇

猜你喜欢

热点阅读