springboot 2.1 实践教程(六)-日志配置

Spring Boot使用Commons Logging作为内部日志记录的接口,为具体实现的日志类Java Util,Logging,Log4J2和 Logback提供了默认配置。在每种实现下,记录器都预先配置为使用控制台输出,并且也提供可选的文件输出。

 

Spring Boot默认情况下,如果使用“Starters”则使用Logback进行日志记录。

 

Spring Boot的默认日志输出格式如下:

2014-03-05 10:57:51.112 INFO 45469 --- [main] org.apache.catalina.core.StandardEngine:启动Servlet引擎:Apache Tomcat / 7.0.52
2014-03-05 10:57:51.253 INFO 45469 --- [ost-startStop-1] oaccC [Tomcat]。[localhost]。[/]:初始化Spring嵌入式WebApplicationContext
2014-03-05 10:57:51.253 INFO 45469 --- [ost-startStop-1] osweb.context.ContextLoader:Root WebApplicationContext:初始化在1358 ms完成
2014-03-05 10:57:51.698 INFO 45469 --- [ost-startStop-1] osbceServletRegistrationBean:将servlet:'dispatcherServlet'映射到[/]
2014-03-05 10:57:51.702 INFO 45469 --- [ost-startStop-1] osbcembedded.FilterRegistrationBean:映射过滤器:'hiddenHttpMethodFilter'到:[/ *]

主要输出的项目包括:

 

 

  • 日期和时间:精确到毫秒
  • 日志的级别:ERROR,WARN,INFO,DEBUG,TRACE
  • 进程的ID
  • 分隔符 ---
  • 线程名称:[方括号括起来的]
  • 记录器名称:通常是类的名称
  • 日志消息。

注意:Logback没有FATAL级别。它映射到ERROR级别。

 

如何在应用中使用Logging?

在Spring Boot 默认情况下提供日志的基本输出 ,并输出至控制台,日志级别为INFO

如果需要定义更多日志的信息,如日志的格式化,日志生成的规则等等需要自定义日志文件。

新建logback-spring.xml放至resources目录下。Spring Boot会自动加载该日志文件。

 

logback-spring.xml内容如下

<?xml version="1.0" encoding="UTF-8"?>
<configuration>

   <property name="log.path" value="E:/log" />
   <property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />

   <!-- 控制台输出 -->
   <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
      <encoder>
         <pattern>${log.pattern}</pattern>
      </encoder>
   </appender>
   
   <!-- 系统日志输出 -->
   <appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
       <file>${log.path}/sys-info.log</file>
      <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
         <!-- 按天回滚 daily -->
         <fileNamePattern>${log.path}/sys-info.%d{yyyy-MM-dd}.log</fileNamePattern>
         <!-- 日志最大的历史 60天 -->
         <maxHistory>60</maxHistory>
      </rollingPolicy>
      <encoder>
         <pattern>${log.pattern}</pattern>
      </encoder>
      <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>INFO</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
   </appender>
   
   <appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
       <file>${log.path}/sys-error.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${log.path}/sys-error.%d{yyyy-MM-dd}.log</fileNamePattern>
         <!-- 日志最大的历史 60天 -->
         <maxHistory>60</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>${log.pattern}</pattern>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>ERROR</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>

   
   <!-- 显示形成的sql、使用的参数、结果集 -->
   <!--
      <logger name="java.sql" level="debug" />
      <logger name="org.springframework.jdbc" level="debug" />
   -->

   <!-- 将org.learn包下日志级别设置为info-->
   <logger name="org.learn" level="info" />
   <!-- 将org.springframework包下日志级别设置为ERROR-->
   <logger name="org.springframework" level="ERROR" />
   <!-- 将org.apache包下日志级别设置为ERROR-->
   <logger name="org.apache" level="ERROR" />
   
   <root level="info">
      <appender-ref ref="console" />
   </root>
   <!--系统操作日志-->
    <root level="info">
        <appender-ref ref="file_info" />
        <appender-ref ref="file_error" />
    </root>

</configuration> 

 

该文件定义了控制台输出的级别,日志文件输出的位置及界别,以及日志文件个格式和生成规则。

 

 

 

多环境切换时日志的配置

场景:当我们web应用有开发环境和生产环境,并且开发环境的系统是Windows,生产环境是Linux时当我们日志文件输出到硬盘时,由于系统原因路径的设置需要更改,那么我们如何可以做到自动切换到相应的路径配置上呢? 使用步骤如下:

 

在logback-spring.xml中需要切换的环境上增加springProfile标签

<!--不同环境指定到不同的日志路径-->
<springProfile name="dev">
<property name="log.path" value="E:/log" />
</springProfile>
<springProfile name="prd">
   <property name="log.path" value="usr/local/log" />
</springProfile>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值