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 按照以往惯例,我先检查 ...
随机推荐
- day14 Pyhton学习
一.迭代器-概念 可迭代协议:内部含有__iter__方法的值/变量都是可迭代的 如何得到一个迭代器:可迭代变量.__iter__()返回一个迭代器 迭代器协议:内部含有__iter__方法和__ne ...
- 【C语言程序设计】小游戏之俄罗斯方块(二)!适合初学者上手、练手!
第二篇,主要实现俄罗斯方块中的主体部分,包括容器的数据结构以及容器的相关操作,特别是大方块和容器之间的交互逻辑,包括碰撞检测,消除检测等等. 1. 容器的表示 大方块的实现涉及到位运算,而容器同样如此 ...
- jmeter_02_目录文档说明
jmeter目录文档说明 bin目录是可执行文件 jmeter.bat 是启动文件 可以启动jmeter. 使用notpad++ 等文本编辑器打开 bat文件 可以配置jvm的参数 比如堆内存[Hea ...
- linux(centos8):安装Jenkins持续集成工具(java 14 / jenkins 2.257)
一,什么是Jenkins? 1,jenkins是什么? Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具, 用于监控持续重复的工作,旨在提供一个开放易用的软件平台, 使软件的持续 ...
- 爬虫学习之-scrapy交互式命令 scrapy查看页面
scrapy shell https:///www.baidu.com 会启动爬虫请求网页 view(response) 会在浏览器打开请求到的临时文件 response.xpath("/ ...
- 【Azure 环境】连接到微软云Azure中国区 By VS 2019, VS Code, Powershell
问题情形 最近,在使用最新的VS Code插件连接到中国区的Azure时候,出现了依旧是global版的登录连接.这个问题是当前Azure Account插件最新版的问题,可以使用V0.8.11版本登 ...
- Vue 过滤器入门
Vue 允许自定义过滤器,可被用于一些常见的文本格式化 过滤器可以用在两个地方:双花括号插值和 v-bind 表达式 过滤器应该被添加在JavaScript表达式的尾部,由"管道" ...
- deploy.php
<?php namespace Deployer; require 'recipe/common.php'; // Project name set('application', 'tp_web ...
- myBatis初学经验----(1)
Java常用的三种编写模式 Spring,SpringMVC,myBatis. myBatis(原名:iBatis): 开源的ORM(持久层)框架,之前为apahce旗下顶级开源项目,后转到googl ...
- vue-cli中使用swiper
1.当前项目配置 cnpm install swiper vue-awesome-swiper --save 或指定版本下载 cnpm install swiper@5.4.5 vue-awesome ...