springboot支付项目之日志配置

日志框架spring

本节主要内容:app

1:常见的几种日志框架框架

2:Logback的使用ide

3:怎么配置info和error级别日志到不一样文件中而且按照日期天天一个文件。spa

document_image_rId9.png

document_image_rId10.png


以上几个框架能够分类以下:插件

document_image_rId11.png

document_image_rId12.png

SLF4J和Logback的使用日志

日志级别:code

document_image_rId13.png

级别越大越严重。orm

一:Java类中使用日志两种方式:

方式一:在每一个类中添加日志对象:

private  final Logger logger = LoggerFactory.getLogger(LoggerTest.class);xml

document_image_rId14.png

方法二:使用lombok插件:

在pom.xml文件中添加lombok依赖:

<dependency>

  <groupId>org.projectlombok</groupId>

  <artifactId>lombok</artifactId>

  <optional>true</optional>

</dependency>

而后再类上面使用@slf4j注解

document_image_rId15.png

推荐使用第二种,注解方式。这样就不用再每一个类中添加了。

二:变量的打印

方式一:使用字符串+的方式。

document_image_rId16.png

直接使用字符串+的。若是变量多,+就须要不少了。

方式二:使用占位符的方式。

document_image_rId17.png

两个运行的结果:

document_image_rId18.png

推荐使用第二种,这样一看及明白。

Logback的配置

两种配置方式:

application.yml和logback-spring.xml

也就是一种基于yml文件一种基于xml文件配置的

来看下项目中常常遇到的日志需求:

区分info和error日志;天天产生一个日志文件。

document_image_rId19.png

方式一:再yml文件中配置

document_image_rId20.png

咱们能够看到,logging相关配置还不少的。如console打印的日志格式、日期格式、文件、日志级别、日志最大大小等等。均可以配置的。

如:咱们配置在控制台输出时间-信息换行。这个怎么配置呢?

document_image_rId21.png

查看运行结果:

document_image_rId22.png

配置日志输出位置:

document_image_rId23.png

运行后,能够在C盘下看到一个aa文件夹,打开就是日志文件了。以下图:

document_image_rId24.png

默认日志文件名称是spring.log。若是想修改为本身的能够使用file。以下图

document_image_rId25.png

运行后:

document_image_rId26.png

修改日志级别:

document_image_rId27.png

日志级别还能够绑定到指定的类上面。如:

document_image_rId28.png

第二种方式:使用xml文件配置

1:控制台输出:

document_image_rId29.png

2:根据不一样日志级别输出到不一样日志文件中。文件名带上日期

能够看到,文件滚动方式有不少,能够安装大小和时间、能够按照时间的。以下图:

document_image_rId30.png

配置后文件以下:

document_image_rId31.png

基于XML配置的全部配置信息:

<?xml version="1.0" encoding="utf-8" ?>

<configuration>

   <!-- 控制台输入日志格式配置-->

   <appender name="consolelogg" class="ch.qos.logback.core.ConsoleAppender">

       <layout class="ch.qos.logback.classic.PatternLayout">

           <pattern>

               %d -%msg%n

           </pattern>

       </layout>

   </appender>


   <!-- info日志 天天一个日志文件配置-->

   <appender name="infoFileLog" class="ch.qos.logback.core.rolling.RollingFileAppender">

       <filter class="ch.qos.logback.classic.filter.LevelFilter">

           <level>ERROR</level>

           <onMatch>DENY</onMatch>

           <onMismatch>ACCEPT</onMismatch>

       </filter>

       <encoder>

           <pattern>

               %msg%n

           </pattern>

       </encoder>

       <!-- 配置日志滚动策略-->

       <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">

           <!-- 文件路径.文件名称中带有日期-->

           <fileNamePattern>c:/aa/info.%d.log</fileNamePattern>

       </rollingPolicy>

   </appender>



   <appender name="fileErrorLog" class="ch.qos.logback.core.rolling.RollingFileAppender">

       <filter class="ch.qos.logback.classic.filter.ThresholdFilter">

           <level>ERROR</level>

       </filter>

       <encoder>

           <pattern>

               %msg%n

           </pattern>

       </encoder>

       <!--滚动策略-->

       <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">

           <!--路径-->

           <fileNamePattern>c:/aa/error.%d.log</fileNamePattern>

       </rollingPolicy>

   </appender>



   <root level="info">

       <appender-ref ref="consolelogg"/>

       <appender-ref ref="infoFileLog"/>

       <appender-ref ref="fileErrorLog"/>

   </root>

</configuration>

各位有什么更好的日志框架介绍下呗

相关文章
相关标签/搜索