Spring-Boot"原生态"的logback
前言
Logback是由 log4j创始人设计的又一个开源日志组件;
logback当前分成三个模块:
logback-core
logbackclassic
logback-access
logback-core是其它两个模块的基础模块
如果在你的pom.xml中,依赖了 spring-boot-starter-web ,就可以不用再添加日志组件的依赖。
在 application.properties 中加入
#########logback##########
logging.config=classpath:logback-boot.xml
logback-boot.xml配置解说
默认的是 logback.xml ,如果要扩展的话,必须是logback-xxx.xml
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder charset="UTF-8">
<pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] %5p %m%n</pattern>
</encoder>
</appender>
<!-- 出错日志 appender -->
<appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>./logs/error/LinkManagerAPP_error_console.log</file>
<append>true</append>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 按天回滚 daily -->
<fileNamePattern>./logs/error/LinkManagerAPP_%d{yyyy-MM-dd_HH}_ERROR</fileNamePattern>
<!-- 日志最大的历史 2天 -->
<maxHistory>7</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n</pattern>
<charset class="java.nio.charset.Charset">UTF-8</charset>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<!-- 过滤掉非ERROR级别,只打印ERROR日志 -->
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>ERROR</level>
</filter>
</appender>
<!-- info日志 appender -->
<appender name="INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>./logs/info/LinkManagerAPP_info_console.log</file>
<append>true</append>
<!-- 按天回滚 daily -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>./logs/info/LinkManagerAPP_%d{yyyy-MM-dd_HH}_INFO</fileNamePattern>
<!-- 日志最大的历史 2 -->
<maxHistory>7</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n</pattern>
<charset class="java.nio.charset.Charset">UTF-8</charset>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<!-- 过滤掉非INFO级别,只打印INFO日志 -->
<level>INFO</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>INFO</level>
</filter>
</appender>
<root level="DEBUG">
<appender-ref ref="STDOUT" />
<appender-ref ref="INFO" />
<appender-ref ref="ERROR" />
</root>
</configuration>
详解:
<pattern> :
%d{yyyy-MM-dd HH:mm:ss.SSS}——日志输出时间
%thread——输出日志的进程名字,这在Web应用以及异步任务处理中很有用
%-5level——日志级别,并且使用5个字符靠左对齐
%logger{36}——日志输出者的名字
%msg——日志消息
%n——平台的换行符
<appender> :
appender是configuration的子节点,是负责写日志的组件
<file> :
被写入的文件名,可以是相对目录 , 也可以是绝对目录 , 如果目录不存在则会自动创建
<append> :
如果是true , 日志被追加到文件结尾 , 如果是false,清空现存文件 , 默认是true
<rollingPolicy> :
当发生滚动时,决定 RollingFileAppender 的行为,涉及文件移动和重命名
<fileNamePattern> :
活动文件的名字会根据fileNamePattern的值,每隔一段时间改变一次
<maxHistory> :
每产生一个日志文件,该日志文件的保存期限
ConsoleAppender类 :
把日志输出到控制台
RollingFileAppender类 :
滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件
TimeBasedRollingPolicy类 :
最常用的滚动策略,它根据时间来制定滚动策略,既负责滚动也负责触发滚动
LevelFilter类 :
根据记录级别对记录事件进行过滤。
如果事件的级别等于配置的级别,过滤器会根据 onMatch 和 onMismatch 属性接受或拒绝事件
ThresholdFilter类 :
过滤掉低于指定临界值的事件。
当记录的级别等于或高于临界值时 , ThresholdFilter 的decide()方法会返回NEUTRAL;
当记录级别低于临界值时 , 事件会被拒绝
想了解具体内容,可参考:
Spring-Boot"原生态"的logback的更多相关文章
- spring boot下使用logback或log4j生成符合Logstash标准的JSON格式
spring boot下使用logback或log4j生成符合Logstash标准的JSON格式 一.依赖 由于配置中使用了json格式的日志输出,所以需要引入如下依赖 "net.logst ...
- Spring Boot默认日志logback配置解析
前言 今天来介绍下Spring Boot如何配置日志logback,我刚学习的时候,是带着下面几个问题来查资料的,你呢 如何引入日志? 日志输出格式以及输出方式如何配置? 代码中如何使用? 正文 Sp ...
- Spring Boot 应用系列 5 -- Spring Boot 2 整合logback
上一篇我们梳理了Spring Boot 2 整合log4j2的配置过程,其中讲到了Spring Boot 2原装适配logback,并且在非异步环境下logback和log4j2的性能差别不大,所以对 ...
- Spring Boot项目的Logback配置文件使用yaml格式
1.普通的Spring项目使用logback默认用properties文件做为配置变量. 2.如果非要用yaml文件,那么可以转成Spring Boot项目,天生无缝结合 3.没办法,如果项目配置文件 ...
- Spring Boot中实现logback多环境日志配置
在Spring Boot中,可以在logback.xml中的springProfile标签中定义多个环境logback.xml: <springProfile name="produc ...
- Spring Boot中使用logback日志框架
说明:Spring Boot在最新的版本中默认使用了logback框架.一般来说使用时只需在classpath下创建logback.xml即可,而官方推荐使用logback-spring.xml替代, ...
- Spring Boot 使用 Log4j2 & Logback 输出日志到 EKL
文章目录 1.ELK 介绍 2.环境.软件准备 3.ELK 环境搭建 4.Spring Boot 配置示例 4.1.Log4j2 方式配置 4.2.Logback 方式配置 1.ELK 介绍 ELK ...
- Spring Boot 集成日志logback + 控制台打印SQL
一: 控制台打印SQL application.properties中添加如下即可在控制台打印sql logging.level.com.fx.fxxt.mapper=debug 二:日志 因为Spr ...
- Spring Boot(三):logback打印日志
springboot对logback的支持是非常好的,不需要任何配置,只需要在resource下加logback.xml就可以实现功能直接贴代码: <?xml version="1.0 ...
- 剑指架构师系列-spring boot的logback日志记录
Spring Boot集成了Logback日志系统. Logback的核心对象主要有3个:Logger.Appender.Layout 1.Logback Logger:日志的记录器 主要用于存放日志 ...
随机推荐
- Python笔记(十八)_私有属性、实例属性、类属性
私有属性 如果要让内部属性不被外部访问,可以把属性的名称前加上两个下划线__,就变成了一个私有属性,只有内部可以访问,外部不能直接访问或修改. 这样就确保了外部代码不能随意修改对象内部的状态,这样通过 ...
- 关于public private protected访问修饰符
这个似乎都是老生常谈了,特别是找工作第一轮笔试的时候很爱考这些,再罗列一次,特别要注意继承的情况: 默认状态:即是不加修饰符的时候,所谓的default状态,在类内部可以被访问,在相同的包下面 ...
- Java IO(1)
IO这一部分内容还是比较多的,对于基础的枯燥但是又重要的内容还是将它记下来比较好. 关于File类 Ø File类直接继承与Object类,File类描述了文件本身的一些属性,File类用来获取或者处 ...
- MySQL集群(PXC)入门
一.学习动机 伴随互联网行业的兴起,越来越多的领域需要相应的技术方案,比如:打出软件.电商平台.直播平台.电子支付.媒体社交. 身边常见的,校园出成绩那一年,我们会感觉网站异常的卡顿,因为访问人数太多 ...
- no suitable HttpMessageConverter found for response type
在使用 RestTemplate 或者 Spring Cloud 的时候,经常会出现这个错误. 基本上出现的场景都是,我们要json,结果来了个 text/html. 两个原因: 第一个就是:服务器返 ...
- spring-第十八篇之spring AOP基于XML配置文件的管理方式
1.在XML配置文件中配置切面.切入点.增强处理.spring-1.5之前只能使用XML Schema方式配置切面.切入点.增强处理. spring配置文件中,所有的切面.切入点.增强处理都必须定义在 ...
- Struts2之获取ServletAPI
1.通过ServletActionContext类 //获取request对象 HttpServletRequest request = ServletActionContext.getRequest ...
- MYSQL 的七种join
建表 在这里呢我们先来建立两张有外键关联的张表. CREATE DATABASE db0206; USE db0206; CREATE TABLE `db0206`.`tbl_dept`( `id` ...
- mybatis问题整理
// List<String> findBuildByProject(String prjName); //单参数时使用<if></if>标签判断采用"_ ...
- luoguP1966 火柴排队(NOIP2013)(归并排序)
luogu P1966 火柴排队 题目 #include<iostream> #include<cstdlib> #include<cstdio> #include ...