zoukankan      html  css  js  c++  java
  • springboot支付项目之日志配置

    日志框架

    本节主要内容:

    1:常见的几种日志框架

    2:Logback的使用

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

    以上几个框架可以分类如下:

    SLF4J和Logback的使用

    日志级别:

    级别越大越严重。

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

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

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

    方法二:使用lombok插件:

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

    <dependency>

      <groupId>org.projectlombok</groupId>

      <artifactId>lombok</artifactId>

      <optional>true</optional>

    </dependency>

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

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

    二:变量的打印

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

    直接使用字符串+的。如果变量多,+就需要很多了。

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

    两个运行的结果:

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

    Logback的配置

    两种配置方式:

    application.yml和logback-spring.xml

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

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

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

    方式一:再yml文件中配置

    我们可以看到,logging相关配置还很多的。如console打印的日志格式、日期格式、文件、日志级别、日志最大大小等等。都可以配置的。

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

    查看运行结果:

    配置日志输出位置:

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

    默认日志文件名称是spring.log。如果想修改成自己的可以使用file。如下图

    运行后:

    修改日志级别:

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

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

    1:控制台输出:

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

    可以看到,文件滚动方式有很多,可以安装大小和时间、可以按照时间的。如下图:

    配置后文件如下:

    基于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>

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

  • 相关阅读:
    unordered_set
    树的所有实现
    各类算法模板
    单链表全部实现(绝对史上最完整 附例题)
    求最长回文子串
    无重复的最长子串
    秋叶集
    1451. 重新排列句子中的单词
    152. 乘积最大子数组
    JVM总结的部分内容
  • 原文地址:https://www.cnblogs.com/kaigejava/p/11548911.html
Copyright © 2011-2022 走看看