SpringCloud/Boot集成LogBack

打印 上一主题 下一主题

主题 865|帖子 865|积分 2595

一. 扼要介绍


  • 什么是SLF4J?
   官网介绍:
Simple Logging Facade for Java (SLF4J) 充当简单的 各种日记记录框架的 Facade 或抽象 (e.g. java.util.logging、logback、log4j)允许最终用户在摆设时插入所需的日记记录框架。
    雷同java中的接口,假如只集成SLF4J,日记只能输出在控制台,并没有输出到文件的本领,要实现真正的日记本领,须要引入实在现层:比如log4j,log4j2,logback等
  

  • 什么是LogBack?
   logback是log4j的创始人重新设计研发的升级版“log4j”,遵循log4j雷同的设计,但重写改进了底层实现
    logback分为三大块:
  

  • logback-core:模块为其他两个模块的基础。
  • logback-classic:模块可以被看做是log4j的改进版本。此外,logback-classic 本身实现了 SLF4J API,因此可以在 logback 和其他日记框架(如 log4j 或 java.util.logging(JUL))之间来回切换。
  • logback-access:模块与 Servlet 容器(如 Tomcat 和 Jetty)集成,以提供 HTTP 访问日记功能。
  二. 依赖引入

假如黑白springboot项目,须要引入logback-classic
  1. <dependency>
  2.     <groupId>ch.qos.logback</groupId>
  3.     <artifactId>logback-classic</artifactId>
  4. </dependency>
复制代码
进入logback-classic会发现内部已经引入slf4j-api和logback-core

假如是springboot/cloud项目,只须要引入spring-boot-starter-web即可
  1. <dependency>
  2.    <groupId>org.springframework.boot</groupId>
  3.    <artifactId>spring-boot-starter-web</artifactId>
  4. </dependency>
复制代码
我们来看一下为什么

  • 进入 spring-boot-starter-web 找到 spring-boot-starter

  • 进入 spring-boot-starter 找到 spring-boot-starter-logging

  • 进入 spring-boot-starter-logging 找到 logback-classic

  • 进入 logback-classic 找到 slf4j-api和logback-core

三. yml文件配置

开发/测试情况打开mybatis日记
  1. mybatis-plus:
  2.   global-config:
  3.     configuration:
  4.       log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
复制代码
四. logback-spring.xml文件配置

   在springboot项目/springcloud每个模块 的resources下创建 logback-spring.xml文件
    要修改一下log.name,推荐logs/项目名称,假如是微服务项目,推荐logs/模块名称
按需选择是否解释修改最后面的不同情况的日记级别配置:开发情况推荐debug级别,生产情况推荐info级别
    假如是微服务项目,把logback-spring.xml在每一个模块下的resources都添加一份,把log.name修改一下即可
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <configuration debug="false" scan="true" scanPeriod="1 seconds">
  3.     <contextName>logback</contextName>
  4.        <!--必须修改:改成你的日志文件名,下面配置表示:在项目启动目录下,创建个logs文件夹,并将日志写入到demo.log文件中-->
  5.     <property name="log.name" value="logs/这里改为模块名称"/>
  6.     <!--输出到控制台 ConsoleAppender-->
  7.     <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
  8.         <encoder>
  9.             <pattern>%d{HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36} - %msg%n</pattern>
  10.         </encoder>
  11.     </appender>
  12.   <!--必须要配置:下面配置含义,当单个日志文件大小超过100M后,会生成新日志文件,并将旧其按日志进行打包压缩,当日志总大小超过10G或者日志时间超过7天,就吧最老的日志删除,避免日志撑爆服务器硬盘导致服务器宕机-->
  13.     <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
  14.         <file>${log.name}.log</file>
  15.         <!--滚动策略,按照时间滚动 TimeBasedRollingPolicy-->
  16.         <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
  17.             <!--文件路径,定义了日志的切分方式——把每一天的日志归档到一个文件中,以防止日志填满整个磁盘空间-->
  18.             <FileNamePattern>${log.name}.%d{yyyy-MM-dd}.%i.log.gz</FileNamePattern>
  19.             <!-- 单个日志文件最多 100MB -->
  20.             <maxFileSize>100MB</maxFileSize>
  21.             <!--只保留最近7天的日志-->
  22.             <maxHistory>7</maxHistory>
  23.             <!--用来指定日志文件的上限大小,那么到了这个值,就会删除旧的日志-->
  24.             <totalSizeCap>10GB</totalSizeCap>
  25.         </rollingPolicy>
  26.         <!--日志输出编码格式化-->
  27.         <encoder>
  28.             <charset>UTF-8</charset>
  29.             <pattern>%d [%t] %-5level %logger{36}.%M\(%file:%line\) - %msg%n</pattern>
  30.         </encoder>
  31.     </appender>
  32. <!--  <root level="info">
  33.         <appender-ref ref="console"/>
  34.         <appender-ref ref="file"/>
  35.     </root>-->
  36.     <logger name="org.springframework" level="warn"/>
  37.     <springProfile name="local">
  38.         <!-- 打印mybatis日志 -->
  39.         <logger name="cn.enn.smart.mapper" level="debug"/>
  40.         <root level="info">
  41.             <appender-ref ref="console"/>
  42.             <!--本地环境时,不写入日志文件 -->
  43.         </root>
  44.     </springProfile>
  45.     <springProfile name="dev">
  46.         <!-- 打印mybatis日志 -->
  47.         <logger name="cn.enn.smart.mapper" level="debug"/>
  48.         <root level="debug">
  49.             <appender-ref ref="console"/>
  50.             <appender-ref ref="file"/>
  51.         </root>
  52.     </springProfile>
  53.     <springProfile name="test">
  54.         <!-- 打印mybatis日志 -->
  55.         <logger name="cn.enn.smart.mapper" level="debug"/>
  56.         <root level="info">
  57.             <appender-ref ref="console"/>
  58.             <appender-ref ref="file"/>
  59.         </root>
  60.     </springProfile>
  61.     <springProfile name="pro">
  62.         <!-- 打印mybatis日志 -->
  63.         <logger name="cn.enn.smart.mapper" level="debug"/>
  64.         <root level="info">
  65.             <appender-ref ref="console"/>
  66.             <appender-ref ref="file"/>
  67.         </root>
  68.     </springProfile>
  69. </configuration>
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

欢乐狗

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表