logback怎么写?分类输出日志到不同的文件
此appender有顺序,最好不要乱调顺序,输出日志如下:
drwxr-xr-x 2 root root 4096 Dec 3 00:00 2019-12-02
drwxr-xr-x 2 root root 4096 Dec 4 13:48 2019-12-03
drwxr-xr-x 2 root root 4096 Dec 5 09:55 2019-12-04
-rw-r--r-- 1 root root 29712 Dec 5 10:16 error.log
-rw-r--r-- 1 root root 426 Dec 5 10:28 framework.log
-rw-r--r-- 1 root root 237 Dec 5 10:28 XXXXMo.log
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<include resource="org/springframework/boot/logging/logback/defaults.xml"/>
<property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
<property name="FILE_LOG_PATTERN" value="${FILE_LOG_PATTERN:-%d{yyyy-MM-dd HH:mm:ss.SSS} ${LOG_LEVEL_PATTERN:-%5p} ${PID:- } --- [%t] %-40.40logger{39} : %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
<property name="LOG_FILE" value="../logs/service-XXXXMo"/>
<property name = "log_level" value = "INFO"/>
<property name = "max_log_files" value = "20"/>
<!--控制台-->
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
<charset>utf8</charset>
</encoder>
<!--这段注释掉,测试是通过的,过滤掉带nacos关键字的日志不打印 <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
<onMatch>DENY</onMatch>
<onMismatch>ACCEPT</onMismatch>
<evaluator>
<expression>
return message.contains("nacos");
</expression>
</evaluator>
</filter>-->
</appender>
<!-- 错误日志(框架 + 业务) -->
<appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_FILE}/error.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- rollover daily -->
<fileNamePattern>${LOG_FILE}/%d{yyyy-MM-dd}/error.log</fileNamePattern>
<maxHistory>${max_log_files}</maxHistory>
</rollingPolicy>
<encoder>
<pattern>${FILE_LOG_PATTERN}</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!--业务日志文件-->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<encoder>
<pattern>${FILE_LOG_PATTERN}</pattern>
</encoder>
<file>${LOG_FILE}/XXXXMo.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_FILE}/%d{yyyy-MM-dd}/XXXXMo.log</fileNamePattern>
<maxHistory>${max_log_files}</maxHistory>
</rollingPolicy>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- 框架日志 -->
<appender name="FRAMEWORK" class="ch.qos.logback.core.rolling.RollingFileAppender">
<encoder>
<pattern>${FILE_LOG_PATTERN}</pattern>
</encoder>
<file>${LOG_FILE}/framework.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- rollover daily -->
<fileNamePattern>${LOG_FILE}/%d{yyyy-MM-dd}/framework.log</fileNamePattern>
<maxHistory>${max_log_files}</maxHistory>
</rollingPolicy>
<filter class="ch.qos.logback.core.filter.EvaluatorFilter">
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
<evaluator>
<expression>
event.getLevel() == ch.qos.logback.classic.Level.${log_level}
|| event.getLevel() == ch.qos.logback.classic.Level.WARN
</expression>
</evaluator>
</filter>
</appender>
<logger name="org.apache.ibatis" level="${log_level}" additivity="false">
<appender-ref ref="FRAMEWORK"/>
<appender-ref ref="ERROR"/>
</logger>
<logger name="org.springframework" level="${log_level}" additivity="false">
<appender-ref ref="FRAMEWORK"/>
<appender-ref ref="ERROR"/>
</logger>
<logger name="com.alibaba" level="${log_level}" additivity="false">
<appender-ref ref="FRAMEWORK"/>
<appender-ref ref="ERROR"/>
</logger>
<logger name="org.apache.zookeeper" level="${log_level}" additivity="false">
<appender-ref ref="FRAMEWORK"/>
<appender-ref ref="ERROR"/>
</logger>
<logger name="org.I0Itec" level="${log_level}" additivity="false">
<appender-ref ref="FRAMEWORK"/>
<appender-ref ref="ERROR"/>
</logger>
<logger name="org.quartz" level="${log_level}" additivity="false">
<appender-ref ref="FRAMEWORK"/>
<appender-ref ref="ERROR"/>
</logger>
<logger name="org.hibernate" level="${log_level}" additivity="false">
<appender-ref ref="FRAMEWORK"/>
<appender-ref ref="ERROR"/>
</logger>
<logger name="org.mybatis" level="${log_level}" additivity="false">
<appender-ref ref="FRAMEWORK"/>
<appender-ref ref="ERROR"/>
</logger>
<logger name="com.mysql" level="${log_level}" additivity="false">
<appender-ref ref="FRAMEWORK"/>
<appender-ref ref="ERROR"/>
</logger>
<logger name="com.alibaba.nacos" level="${log_level}" additivity="false">
<appender-ref ref="FRAMEWORK"/>
<appender-ref ref="ERROR"/>
</logger>
<root level="info">
<appender-ref ref="FILE" />
<appender-ref ref="ERROR" />
<appender-ref ref="CONSOLE" />
</root>
</configuration>
logback怎么写?分类输出日志到不同的文件的更多相关文章
- SpringBoot+logback实现按业务输出日志到不同的文件
公司有个项目,需要和几个第三方系统对接.这种项目,日志一定要记录详细,不然出了问题就是各种甩锅.虽然项目里面和第三方系统对接相关的业务记录的日志很详细,但是由于整个项目的日志都在一个文件中,排 ...
- Spring按业务模块输出日志到不同的文件
一.背景 在我们开发的过程中,可能存在如下情况: 1.有些时候我们需要调用第三方的接口,一般情况下,调用接口,我们都会记录请求的入参和响应的.如果我们自己系统的日志和第三方的日志混合到一个日志文件中, ...
- cocos2d-x 控制台输出日志
在2dx中用CCLog输出日志,但是在vs的控制台中由于信息很多,很难发现.可以用下面方法,会重新启动一个黑色的控制台来输出日志 修改main.c文件,如下: #include "main. ...
- Log4j日志根据配置输出到多个自定义文件
最近工作中遇到所有日志需要记录到一个文件,而错误的sql执行记录到另一个文件中,查询了一些资料搞定,记录下来.顺便吐槽下公司限制印象笔记的使用. ##log4j.rootLogger=INFO, CO ...
- springboot的日志框架slf4j (使用logback输出日志以及使用)
1.为什么使用logback? ——在开发中不建议使用System.out因为大量的使用会增加资源的消耗.因为使用System.out是在当前线程执行的,写入文件也是写入完毕之后才继续执行下面的程序. ...
- Spring Boot 使用 Log4j2 & Logback 输出日志到 EKL
文章目录 1.ELK 介绍 2.环境.软件准备 3.ELK 环境搭建 4.Spring Boot 配置示例 4.1.Log4j2 方式配置 4.2.Logback 方式配置 1.ELK 介绍 ELK ...
- SpringBoot使用logback输出日志并打印sql信息 --经典---
最近在学习springboot以及一些springcloud插件的使用,其中发现默认的配置并不能打印一些有用的日志,所以需要自定义一些日志输出方式以便于查看日志排查问题,目前只整理了两种使用方式,如下 ...
- 使用logback.xml配置来实现日志文件输出
转自:http://sungang-1120.iteye.com/blog/2104296 Logback是由log4j创始人设计的又一个开源日志组件.logback当前分成三个模块:logback- ...
- logback不输出日志消息,且SLF4J绑定源错误
我之前的项目已经成功使用过logback作为日志输出,但是今天新项目在使用的时候,不输出日志信息. 最后终于找到问题所在,并成功解决.解决步骤如下: 第一步:检查pom.xml 按照以往惯例,我先检查 ...
随机推荐
- centos7下面 es7.5 搭建
centos6 搭建 参考 https://www.cnblogs.com/php-linux/p/8758788.html 搭建linux虚拟机 https://www.cnblogs.com/ph ...
- docker的常用操作之三:网络配置
一, docker安装后容器使用哪些网络类型? 在宿主机执行如下命令: [root@localhost liuhongdi]# docker network ls NETWORK ID NAME DR ...
- python保存图片
#coding=utf-8 import requests url ="https://images.pexels.com/photos/1181767/pexels-photo-11817 ...
- Baolu CSV Data Set Config
1.背景 大家在平常使用JMeter测试工具时,对CSV Data Set Config 配置元件肯定不会陌生.如果我们的压测场景涉及到数据库更新操作(如:转账接接口)则需要对参数化数据进行分块,可就 ...
- 函数-深入JS笔记
代码特点:高内聚,低耦合 耦合 存在执行多个相同作用代码时,这就叫耦合 if (1 > 0) { console.log('a'); } if (2 > 0) { console.log( ...
- 读高性能Mysql摘要
类型相关 INT(1)和INT(20)对于存储和计算来说,意义是相同的,他不会限制值的合法范围,只是一些交互工具会用来显示字符的个数 默认是有符号的,可以指定为无符号,增加数据存储范围,如0-255, ...
- axb_2019_heap-format_string + off-by-one
axb_2019_heap 简单题,格式化字符串泄漏栈地址 算上rsp,格式化字符串参数是栈顺序+6-1 edit有off by one 构造unlink chunk0 chunk1 chunk2 构 ...
- 论文解读《ImageNet Classification with Deep Convolutional Neural Networks》
这篇论文提出了AlexNet,奠定了深度学习在CV领域中的地位. 1. ReLu激活函数 2. Dropout 3. 数据增强 网络的架构如图所示 包含八个学习层:五个卷积神经网络和三个全连接网络,并 ...
- 编写shell脚本的规范
目录 编写shell脚本的一些规范 解释器 添加脚本版本和注释功能 添加脚本调试 变量命名 全局变量和局部变量 命名规范 函数命名 脚本命名 函数 引用模块或文件 脚本日志 配置文件 其他 编写she ...
- Linux的进程、线程、文件描述符是什么
说到进程,恐怕面试中最常见的问题就是线程和进程的关系了,那么先说一下答案:在 Linux 系统中,进程和线程几乎没有区别. Linux 中的进程就是一个数据结构,看明白就可以理解文件描述符.重定向.管 ...