ToB企服应用市场:ToB评测及商务社交产业平台
标题:
SpringCloud/Boot集成LogBack
[打印本页]
作者:
欢乐狗
时间:
7 小时前
标题:
SpringCloud/Boot集成LogBack
一. 扼要介绍
什么是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
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</dependency>
复制代码
进入logback-classic会发现内部已经引入slf4j-api和logback-core
假如是springboot/cloud项目,只须要引入spring-boot-starter-web即可
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</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日记
mybatis-plus:
global-config:
configuration:
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修改一下即可
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false" scan="true" scanPeriod="1 seconds">
<contextName>logback</contextName>
<!--必须修改:改成你的日志文件名,下面配置表示:在项目启动目录下,创建个logs文件夹,并将日志写入到demo.log文件中-->
<property name="log.name" value="logs/这里改为模块名称"/>
<!--输出到控制台 ConsoleAppender-->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<!--必须要配置:下面配置含义,当单个日志文件大小超过100M后,会生成新日志文件,并将旧其按日志进行打包压缩,当日志总大小超过10G或者日志时间超过7天,就吧最老的日志删除,避免日志撑爆服务器硬盘导致服务器宕机-->
<appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.name}.log</file>
<!--滚动策略,按照时间滚动 TimeBasedRollingPolicy-->
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!--文件路径,定义了日志的切分方式——把每一天的日志归档到一个文件中,以防止日志填满整个磁盘空间-->
<FileNamePattern>${log.name}.%d{yyyy-MM-dd}.%i.log.gz</FileNamePattern>
<!-- 单个日志文件最多 100MB -->
<maxFileSize>100MB</maxFileSize>
<!--只保留最近7天的日志-->
<maxHistory>7</maxHistory>
<!--用来指定日志文件的上限大小,那么到了这个值,就会删除旧的日志-->
<totalSizeCap>10GB</totalSizeCap>
</rollingPolicy>
<!--日志输出编码格式化-->
<encoder>
<charset>UTF-8</charset>
<pattern>%d [%t] %-5level %logger{36}.%M\(%file:%line\) - %msg%n</pattern>
</encoder>
</appender>
<!-- <root level="info">
<appender-ref ref="console"/>
<appender-ref ref="file"/>
</root>-->
<logger name="org.springframework" level="warn"/>
<springProfile name="local">
<!-- 打印mybatis日志 -->
<logger name="cn.enn.smart.mapper" level="debug"/>
<root level="info">
<appender-ref ref="console"/>
<!--本地环境时,不写入日志文件 -->
</root>
</springProfile>
<springProfile name="dev">
<!-- 打印mybatis日志 -->
<logger name="cn.enn.smart.mapper" level="debug"/>
<root level="debug">
<appender-ref ref="console"/>
<appender-ref ref="file"/>
</root>
</springProfile>
<springProfile name="test">
<!-- 打印mybatis日志 -->
<logger name="cn.enn.smart.mapper" level="debug"/>
<root level="info">
<appender-ref ref="console"/>
<appender-ref ref="file"/>
</root>
</springProfile>
<springProfile name="pro">
<!-- 打印mybatis日志 -->
<logger name="cn.enn.smart.mapper" level="debug"/>
<root level="info">
<appender-ref ref="console"/>
<appender-ref ref="file"/>
</root>
</springProfile>
</configuration>
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4