SpringBoot+logback实现按业务输出日志到不同的文件
一、方案
二、具体实现
(1)准备阶段
- 定义了2个appender,分别为输出到控制台的appender和输出到文件的appender
- 默认日志级别为info,默认引用了上面定义的这个2个appender
(2)实战阶段
- 在resources目录下新建一个logback-spring.xml的文件
- 将logback的默认配置(base.xml)内容copy到我们的xml文件中,因为我们想保留它的默认配置
- 定义一个输出到文件的appender
- 定义一个logger,logger的name为需要单独生成文件的那个包的全包名
- logger里面引用我们上面定义的appender
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!--官方配置 start-->
<!--保留官方配置,方便使用官方配置的特性,参考:spring-boot-2.1.0.RELEASE.jar!\org\springframework\boot\logging\logback\base.xml-->
<include resource="org/springframework/boot/logging/logback/defaults.xml" />
<property name="LOG_FILE" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}}/spring.log}"/>
<include resource="org/springframework/boot/logging/logback/console-appender.xml" />
<include resource="org/springframework/boot/logging/logback/file-appender.xml" />
<root level="info">
<appender-ref ref="CONSOLE" />
<appender-ref ref="FILE" />
</root>
<!--官方配置 end-->
<!--######自定义配置 start########-->
<!-- 自定义配置__单独输出到一个日志文件中 -->
<appender name="Biz_LOG" class="ch.qos.logback.core.rolling.RollingFileAppender">
<encoder>
<pattern>${FILE_LOG_PATTERN}</pattern>
</encoder>
<file>${LOG_FILE}_BIZ.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${LOG_FILE}_BIZ.%d{yyyy-MM-dd}.%i.gz</fileNamePattern>
<maxFileSize>${LOG_FILE_MAX_SIZE:-10MB}</maxFileSize>
<maxHistory>${LOG_FILE_MAX_HISTORY:-0}</maxHistory>
</rollingPolicy>
</appender>
<!--指定包或者类的日志配置(这里是局部配置,它能覆盖全局配置)-->
<!-- 自定义配置__配置业务日志输出至单独的日志文件中 -->
<logger name="com.jwx.digital.client.haier.http" additivity="false" level="debug">
<!-- 引用自定义的appender -->
<appender-ref ref="Biz_LOG"/>
<!-- 这里也引用控制台appender,才能在控制台中看到我们的日志 -->
<appender-ref ref="CONSOLE"/>
</logger>
<!--######自定义配置 end########-->
</configuration>
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!--官方配置 start-->
<!--保留官方配置,方便使用官方配置的特性,参考:spring-boot-2.1.0.RELEASE.jar!\org\springframework\boot\logging\logback\base.xml-->
<include resource="org/springframework/boot/logging/logback/defaults.xml" />
<property name="LOG_FILE" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}}/spring.log}"/>
<include resource="org/springframework/boot/logging/logback/console-appender.xml" />
<include resource="org/springframework/boot/logging/logback/file-appender.xml" />
<root level="info">
<appender-ref ref="CONSOLE" />
<appender-ref ref="FILE" />
</root>
<!--官方配置 end-->
<!--######自定义配置 start########-->
<!-- 自定义配置__单独输出到一个日志文件中 -->
<appender name="Biz_LOG" class="ch.qos.logback.core.rolling.RollingFileAppender">
<encoder>
<pattern>${FILE_LOG_PATTERN}</pattern>
</encoder>
<file>${LOG_FILE}_BIZ.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${LOG_FILE}_BIZ.%d{yyyy-MM-dd}.%i.gz</fileNamePattern>
<maxFileSize>${LOG_FILE_MAX_SIZE:-10MB}</maxFileSize>
<maxHistory>${LOG_FILE_MAX_HISTORY:-0}</maxHistory>
</rollingPolicy>
</appender>
<!--指定包或者类的日志配置(这里是局部配置,它能覆盖全局配置)-->
<!-- 自定义配置__配置业务日志输出至单独的日志文件中 -->
<logger name="com.jwx.digital.client.haier.http" additivity="false" level="debug">
<!-- 引用自定义的appender -->
<appender-ref ref="Biz_LOG"/>
<!-- 这里也引用控制台appender,才能在控制台中看到我们的日志 -->
<appender-ref ref="CONSOLE"/>
</logger>
<!--######自定义配置 end########-->
</configuration>
(3)验证阶段
# 日志打印
logging:
file: /log/digital-client.log #日志输出到这个文件
# 日志打印
logging:
file: /log/digital-client.log #日志输出到这个文件
三、小结
SpringBoot+logback实现按业务输出日志到不同的文件的更多相关文章
- logback不同业务的日志打印到不同文件
logback不同业务的日志打印到不同文件 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/mggwct/article/details/777 ...
- Spring按业务模块输出日志到不同的文件
一.背景 在我们开发的过程中,可能存在如下情况: 1.有些时候我们需要调用第三方的接口,一般情况下,调用接口,我们都会记录请求的入参和响应的.如果我们自己系统的日志和第三方的日志混合到一个日志文件中, ...
- logback怎么写?分类输出日志到不同的文件
此appender有顺序,最好不要乱调顺序,输出日志如下: drwxr-xr-x 2 root root 4096 Dec 3 00:00 2019-12-02drwxr-xr-x 2 root ro ...
- springboot集成log4j2 + logstash 异步输出日志
一. spring boot 集成log4j2 1.maven引入jar包 <dependency> <groupId>org.springframework.boot< ...
- cocos2d-x 控制台输出日志
在2dx中用CCLog输出日志,但是在vs的控制台中由于信息很多,很难发现.可以用下面方法,会重新启动一个黑色的控制台来输出日志 修改main.c文件,如下: #include "main. ...
- Log4j日志根据配置输出到多个自定义文件
最近工作中遇到所有日志需要记录到一个文件,而错误的sql执行记录到另一个文件中,查询了一些资料搞定,记录下来.顺便吐槽下公司限制印象笔记的使用. ##log4j.rootLogger=INFO, CO ...
- springboot的日志框架slf4j (使用logback输出日志以及使用)
1.为什么使用logback? ——在开发中不建议使用System.out因为大量的使用会增加资源的消耗.因为使用System.out是在当前线程执行的,写入文件也是写入完毕之后才继续执行下面的程序. ...
- springboot+logback日志输出企业实践(下)
目录 1.引言 2. 输出 logback 状态数据 3. logback 异步输出日志 3.1 异步输出配置 3.2 异步输出原理 4. springboot 多环境下 logback 配置 5. ...
- springboot+logback日志输出企业实践(上)
目录 1.引言 2.logback简介 3. springboot默认日志框架-logback 3.1 springboot示例工程搭建 3.2 日志输出与基本配置 3.2.1 日志默认输出 3.2. ...
随机推荐
- Git的一些概念(二)
一.Git的结构 二.Git和代码托管中心 代码托管中心的任务:维护远程库 1. 局域网内 GitLab 服务器 -- 可以自己搭建 2. 外部环境 GitHub 码云 三.本地库和远程库 1. 团队 ...
- VIJOS-P1201 高低位交换
洛谷 P1100 高低位交换 https://www.luogu.org/problemnew/show/P1100 JDOJ 1349: VIJOS-P1201 高低位交换 https://neoo ...
- 论文阅读笔记五十九:Res2Net: A New Multi-scale Backbone Architecture(CVPR2019)
论文原址:https://arxiv.org/abs/1904.01169 摘要 视觉任务中多尺寸的特征表示十分重要,作为backbone的CNN的对尺寸表征能力越强,性能提升越大.目前,大多数多尺寸 ...
- 在centos8搭建dhcp服务
1.用这两个命令就可以安装成功 yum - y install dhcp yum -y install dhcp-server.x86_64 2.配置文件在 /etc/dhcp/dhcpd.conf ...
- calc()在less中编译报错
calc()对大家来说,或许很陌生,不太会相信calc()是css中的部分.因为看其外表像个函数,既然是函数为何又出现在CSS中呢? calc() 函数用于动态计算长度值. 需要注意的是,运算符前后都 ...
- CSP2019许愿贴
CSP2019RP++
- C++ 版本ORM访问数据库之ODB访问oracle的Demo(三)
ODB的组成部分: 1: 操作系统的ODB编译器 2: odb核心库libodb 3: 各种数据库的相关链接库 使用ODB访问数据需要的库和头文件(不懂, 请看https://www.cnblogs. ...
- innodb部分内部操作
tab_node_t* tab_create_graph_create( /*====================*/ dict_table_t* table, /*!< in: table ...
- CentOS7 Zookeeper 安装
集群部署 192.168.38.6 zk01192.168.38.7 zk02192.168.38.8 zk03 安装zookeeper,必须安装jdk. 1.下载 $ cd /usr/loca ...
- 四种软件开发模式:tdd、bdd、atdd和ddd的概念
看一些文章会看到TDD开发模式,搜索后发现有主流四种软件开发模式,这里对它们的概念做下笔记. TDD:测试驱动开发(Test-Driven Development) 测试驱动开发是敏捷开发中的一项核心 ...