springboot 集成 log 日志(系统日志,sql日志,异常日志)

雨点打透心脏的1/2处 2022-03-15 11:06 681阅读 0赞

springboot技术栈

log配置详解

springboot集成了log开发包,pom.xml引入 spring-boot-starter 或包含spring-boot-starter的包spring-boot-starter-**如 spring-boot-starter-web

  1. <dependency>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter</artifactId>
  4. </dependency>
  1. application.yml 里增加日志配置

    logging:

    1. config: classpath:log/logback.xml

classpath 指resources目录, 千万不要写/log/logback.xml ,那样会找不到配置文件

  1. 新建logback.xml 路径和application配置里一致

    1. <!--本文主要输出日志为控制台日志,系统日志,sql日志,异常日志-->
    2. <!-- %m输出的信息,%p日志级别,%t线程名,%d日期,%c类的全名,,,, -->
    3. <!--控制台-->
    4. <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
    5. <encoder>
    6. <pattern>%d %p (%file:%line\)- %m%n</pattern>
    7. <charset>UTF-8</charset>
    8. </encoder>
    9. </appender>
    10. <!--系统info级别日志-->
    11. <!--<File> 日志目录,没有会自动创建-->
    12. <!--<rollingPolicy>日志策略,每天简历一个日志文件,或者当天日志文件超过64MB时-->
    13. <!--encoder 日志编码及输出格式-->
    14. <appender name="fileLog"
    15. class="ch.qos.logback.core.rolling.RollingFileAppender">
    16. <File>log/file/fileLog.log</File>
    17. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
    18. <fileNamePattern>log/file/fileLog.log.%d.%i</fileNamePattern>
    19. <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
    20. <!-- or whenever the file size reaches 64 MB -->
    21. <maxFileSize>64 MB</maxFileSize>
    22. </timeBasedFileNamingAndTriggeringPolicy>
    23. </rollingPolicy>
    24. <encoder>
    25. <pattern>
    26. %d %p (%file:%line\)- %m%n
    27. </pattern>
    28. <charset>UTF-8</charset>
    29. <!-- 此处设置字符集 -->
    30. </encoder>
    31. </appender>
    32. <!--sql日志-->
    33. <appender name="sqlFile"
    34. class="ch.qos.logback.core.rolling.RollingFileAppender">
    35. <File>log/sql/sqlFile.log</File>
    36. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
    37. <fileNamePattern>log/sql/sqlFile.log.%d.%i</fileNamePattern>
    38. <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
    39. <!-- or whenever the file size reaches 64 MB -->
    40. <maxFileSize>64 MB</maxFileSize>
    41. </timeBasedFileNamingAndTriggeringPolicy>
    42. </rollingPolicy>
    43. <!--对记录事件进行格式化。负责两件事,一是把日志信息转换成字节数组,二是把字节数组写入到输出流。-->
    44. <encoder>
    45. <!--用来设置日志的输入格式-->
    46. <pattern>
    47. %d %p (%file:%line\)- %m%n
    48. </pattern>
    49. <charset>UTF-8</charset>
    50. <!-- 此处设置字符集 -->
    51. </encoder>
    52. </appender>
  1. <!--异常日志-->
  2. <appender name="errorFile"
  3. class="ch.qos.logback.core.rolling.RollingFileAppender">
  4. <File>log/error/errorFile.log</File>
  5. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  6. <fileNamePattern>log/error/errorFile.%d.log.%i</fileNamePattern>
  7. <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  8. <!-- or whenever the file size reaches 64 MB -->
  9. <maxFileSize>64 MB</maxFileSize>
  10. </timeBasedFileNamingAndTriggeringPolicy>
  11. </rollingPolicy>
  12. <!--对记录事件进行格式化。负责两件事,一是把日志信息转换成字节数组,二是把字节数组写入到输出流。-->
  13. <encoder>
  14. <!--用来设置日志的输入格式-->
  15. <pattern>
  16. %d %p (%file:%line\)- %m%n
  17. </pattern>
  18. <charset>UTF-8</charset>
  19. <!-- 此处设置字符集 -->
  20. </encoder>
  21. <!--
  22. 日志都在这里 过滤出 error
  23. 使用 try {}catch (Exception e){} 的话异常无法写入日志,可以在catch里用logger.error()方法手动写入日志
  24. -->
  25. <filter class="ch.qos.logback.classic.filter.LevelFilter">
  26. <level>ERROR</level>
  27. <onMatch>ACCEPT</onMatch>
  28. <onMismatch>DENY</onMismatch>
  29. </filter>
  30. </appender>
  31. <!-- 日志输出级别 -->
  32. <!--All\DEBUG\INFO\WARN\ERROR\FATAL\OFF-->
  33. <!--打印info级别日志,分别在控制台,fileLog,errorFile输出
  34. 异常日志在上面由过滤器过滤出ERROR日志打印
  35. -->
  36. <root level="INFO">
  37. <appender-ref ref="fileLog" />
  38. <appender-ref ref="console" />
  39. <appender-ref ref="errorFile" />
  40. </root>
  41. <!--打印sql至sqlFile文件日志-->
  42. <logger name="com.dolphin.mapper" level="DEBUG" additivity="false">
  43. <appender-ref ref="console" />
  44. <appender-ref ref="sqlFile" />
  45. </logger>
  46. </configuration>

项目启动时将会在项目跟目录常见log文件夹及log文件

日志级别

  1. ALL: 最低等级的,用于打开所有日志记录。
  2. DEBUG :详细的显示信息
  3. INFO :一般显示信息
  4. WARN :一般警告
  5. ERROR:严重错误
  6. FATAL:崩溃,整个程序终止运行
  7. OFF: 最高级,关闭所有日志
  1. 新建测试controller LogController.java

    package com.dolphin.controller;

    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.ResponseBody;

    /**

    • 开发公司:青岛海豚数据技术有限公司
    • 版权:青岛海豚数据技术有限公司
    • LogController
      *
    • @author 刘志强
    • @created Create Time: 2019/2/16
      */
      @Controller
      @RequestMapping(“/log”)
      public class LogController {

      @GetMapping(“error”)
      @ResponseBody
      public String error() throws Exception{

      1. int[] i = {1,2,3,4};
      2. int j = i[5];
      3. return "测试系统错误日志";

      }
      }

只测试异常日志,和系统日志,sql日志请先集成mybatis。

集成参考: springboot 集成 mybatis,mysql,Druid(数据库连接池), mybatis-generator(MBG自动生成)

浏览器访问 http://localhost:6533/log/error 观察日志文件

发表评论

表情:
评论列表 (有 0 条评论,681人围观)

还没有评论,来说两句吧...

相关阅读

    相关 日志集成日志系统

    一、聊聊以前         最近因为在搭建公司框架,日志是必须加入的一部分。目前因为还未将公司业务做成微服务,所以暂时是在框架基础上集成日志框架,满足框架项目的需要。当