LogBack.xml文件配置
Logback-spring.xml配置文件
1、日志级别:日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,例如:如果设置为WARN,则低于WARN的信息都不会输出
2、根节点:configuration
configuration 有三个可选属性:
a、scan属性:用来设置配置文件变动时是否重新加载,值是true\false,默认是true即配置变动时重新加载
b、scanperiod属性:用来设置每隔多久检查一次配置是否变动,默认是1分钟,默认单位是毫秒
c、debug属性:用来设置是否将logback内部的日志打印出来,即启动时输出配置加载信息。值为true\false 默认为false
3、property节点:
设置要使用的或者共用的变量,property包含两个属性name和value;其中name的值是变量的名称,value的值是变量所代表的值。
<property>定义的值可以使用“${变量名}”到logger上下文中。
4、springProperty节点
该标签的工作方式类似于Logback的标准<property>标签。但是,value您无需指定direct,而是指定source属性的(来自Environment)。
如果需要将属性存储在local范围之外的其他位置,则可以使用该scope属性。
如果需要后备值(如果未在中设置属性Environment),则可以使用defaultValue属性。
5.appender节点
appender节点可以有多个,分别针对不同的包或者类做不同的输出,
如果appender输出到文件时,可以设置append子节点值true/false,是末尾追加日志还是替换日志,值为true时表示追加。
可以在appender中使用filter节点(过滤器),在此节点内过滤日志级别(使用level节点指定),过滤后会返回一个枚举值,
即DENY,NEUTRAL,ACCEPT其中之一:
A、返回DENY,日志将立即被抛弃不再经过其他过滤器;
B、返回NEUTRAL,有序列表里的下个过滤器接着处理日志;
C、返回ACCEPT,日志会被立即处理,不再经过剩余过滤器
如果需要使用这些值做处理时,需要使用onMatch(level级别或大于level级别的)和onMismatch(级别小于level级别的)
6、logger节点
用来设置某一个包或者具体的某一个类的日志打印级别、以及指定appender。logger仅有一个name属性和两个可选的level、addtivity属性。
Name属性:用来指定受此logger约束的某一个包或者具体的某一个类。
Level属性:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR
如果未设置此属性,那么当前logger将会继承上级的级别。
Addtivity属性:用来设置是否向上级logger传递打印信息。默认是true。
logger可以包含零个或多个appender-ref元素,标识这个appender将会添加到这个logger
7、root节点
也是<logger>元素,但是它是根logger。只有一个level属性,因为已经被命名为"root".
level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR。默认是DEBUG。
root可以包含零个或多个appender-ref元素,标识这个appender将会添加到这个logger
8、pattern节点定义的输出模式解释
%d{HH:mm:ss.SSS} 当前时间;
[%thread] [当前线程名称]
%-5level logger级别
%logger{36} logger名称
-%msg%n 定义的输出
%line 输出日志的行号
%n 换行
%date和%d{yyyy-MM-dd HH:mm:ss.SSS} 当前时间包含年月日
{%C.java:%L} 输出日志所在的java类、所在行及路径可以替换[%thread]
9、appender下的filter的常见种类
在logback中,过滤器可以添加到Appender上。通过添加一个或多个过滤器到Appender,你可以通过任意条件,
比如:日志内容、MDC内容、时间等等日志的任何部分,过滤日志事件。
级别过滤器
级别过滤器(LevelFilter)是基于准确匹配日志级别。如果日志级别等于配置的级别,过滤器通过配置中的OnMatch与OnMismatch属性决定是接受还是拒绝事件。
阀值过滤器
阀值过滤器(ThresholdFilter)过滤低于指定阀值的事件。当事件中的日志级别大于等于指定阀值时,过滤器的decide方法返回NEUTRAL。然而,拒绝日志级别小于阀值的事件。
条件过滤器
条件过滤器(EvaluatorFilter)是一种封装了EventEvaluator的通过过滤器。像名字代表的,条件过滤器是根据判断事件是否符合指定条件来分别返回OnMatch与OnMismatch属性里的值。
注意:EventEvaluator是一个抽象类,通过继承它,你可以实现你自己的条件逻辑。
附上配置文件模板:
<?xml version="1.0" encoding="UTF-8"?> <configuration debug="false" scan="false">
<property name="LOG_ROOT" value="你的日志的根路径"></property>
<property name="LOG_PATH" value="日志路径"/> <springProperty scop="context" name="spring.application.name" source="spring.application.name" defaultValue="你的项目名"/>
<property name="log.path" value="${LOG_ROOT}/${LOG_PATH}/${spring.application.name}"/>
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{MM-dd HH:mm:ss.SSS} %-5level [%logger{50}] - %msg%n</pattern>
</encoder>
</appender> <!-- Log file error output -->
<!-- 每天生成日志文件,文件大小超过20则新生成一个文件,
同时将旧文件按${LOG_HOME}/logs/error.%d{yyyy-MM-dd}.%i.log格式保存,文件保存30天 -->
<appender name="info" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 正在记录的日志文档的路径及文档名 -->
<file>${log.path}/info.log</file><!-- 日志名称 -->
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!-- 每天日志归档路径以及格式 -->
<fileNamePattern>${log.path}/%d{yyyy-MM}/info.%d{yyyy-MM-dd}.%i.log</fileNamePattern> <!-- 日志文件过大会使的编辑器打开非常慢,因此设置日志最大20MB -->
<maxFileSize>20MB</maxFileSize>
<!--日志文档保留天数-->
<maxHistory>30</maxHistory>
<cleanHistoryOnStart>true</cleanHistoryOnStart> <!-- <totalSizeCap>10GB</totalSizeCap> <!– 总日志大小 –>-->
</rollingPolicy>
<!-- encoder负责两件事,日志文档输出格式,一是把日志信息转换成字节数组,二是把字节数组写入到输出流 -->
<encoder>
<pattern>%date [%thread] %-5level [%logger{50}] %file:%line - %msg%n</pattern>
</encoder>
<!-- 过滤器,可以过滤掉不符合条件的日志,INFO及以上的日志被处理,其它的拒绝 -->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>info</level>
</filter>
</appender> <appender name="debug" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/debug.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${log.path}/%d{yyyy-MM}/debug.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<maxFileSize>20MB</maxFileSize>
<maxHistory>30</maxHistory>
<cleanHistoryOnStart>true</cleanHistoryOnStart>
</rollingPolicy>
<encoder>
<pattern>%date [%thread] %-5level [%logger{50}] %file:%line - %msg%n</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>debug</level>
</filter>
</appender> <appender name="error" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/error.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${log.path}/%d{yyyy-MM}/error.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<maxFileSize>20MB</maxFileSize>
<maxHistory>30</maxHistory>
<cleanHistoryOnStart>true</cleanHistoryOnStart>
</rollingPolicy>
<encoder>
<pattern>%date [%thread] %-5level [%logger{50}] %file:%line - %msg%n</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>error</level>
</filter>
</appender>
<logger name="org.springframework" level="INFO"/>
<logger name="org.springframework.web" level="INFO"/>
<logger name="org.springframework.beans" level="INFO"/>
<logger name="org.apache" level="WARN"/>
<logger name="org.springboot.sample" level="INFO"/>
<logger name="javax.activation" level="WARN"/>
<logger name="org.mybatis.spring" level="INFO"/> <!-- Level: FATAL 0 ERROR 3 WARN 4 INFO 6 DEBUG 7 -->
<root level="INFO">
<appender-ref ref="console"/>
<appender-ref ref="debug"/>
<appender-ref ref="error"/>
<appender-ref ref="info"/>
</root>
</configuration>
LogBack.xml文件配置的更多相关文章
- logback.xml文件配置(按时间、文件大小和log名称生成日志)
之前项目中日志多用的log4j2,偶然看到在importNew看到了logback,自己查了下,发现Logback和log4j是非常相似的,其作者也是同一个人,并且logback相比于log4j性能更 ...
- (九)logback.xml文件配置(按时间、文件大小和log名称生成日志)
原文链接:https://www.cnblogs.com/hhhshct/p/9084036.html rollingPolicy 设置:<rollingPolicy class="c ...
- web.xml 文件配置01
web.xml 文件配置01 前言:一般的web工程中都会用到web.xml,方便开发web工程.web.xml主要用来配置Filter.Listener.Servlet等.但是要说明的是web. ...
- logback logback.xml常用配置详解(三)
logback logback.xml常用配置详解 <filter> <filter>: 过滤器,执行一个过滤器会有返回个枚举值,即DENY,NEUTRAL,ACCEPT其中之 ...
- 在MFC程序中使用XML文件配置工具栏
现在我发现使用Visual Studio的资源编辑器进行编辑资源有着诸多的不便:首先是任何资源的变动一般变动代码,不利于系统维护,其次Visual Studio的资源编辑器的本身的功能有限,也不利于界 ...
- Spring框架入门之基于xml文件配置bean详解
关于Spring中基于xml文件配置bean的详细总结(spring 4.1.0) 一.Spring中的依赖注入方式介绍 依赖注入有三种方式 属性注入 构造方法注入 工厂方法注入(很少使用,不推荐,本 ...
- springmvc 项目完整示例07 设置配置整合springmvc springmvc所需jar包springmvc web.xml文件配置
前面主要是后台代码,spring以及mybatis的整合 下面主要是springmvc用来处理请求转发,展现层的处理 之前所有做到的,完成了后台,业务层和持久层的开发完成了 接下来就是展现层了 有很多 ...
- logback logback.xml常用配置详解(一)<configuration> and <logger>
logback logback.xml常用配置详解(一)<configuration> and <logger> 博客分类: Log java loglogback 原创文章 ...
- Spring整合Hibernate的XML文件配置,以及web.xml文件配置
利用Spring整合Hibernate时的XML文件配置 applicationContext.xml <?xml version="1.0" encoding=" ...
随机推荐
- SPSS学习笔记参数检验—两独立样本t检验
目的:利用来自两个总体的独立样本,推断两个总体的均值是否存在差异. 适用条件: (1)样本来自的总体应服从或近似服从正态分布: (2)两样本相互独立,两样本的样本量可以不等: 案例分析: 案例描述:评 ...
- Angular 常用命令行
1. ng -v 查看angular-cli是否安装成功.angular-cli的版本号 2. ng new 项目名称 新建angular项目 3. ng g class 类名 动态生成类文件: 4. ...
- KD-tree学习笔记(超全!)
目录 K-D树 更新信息 建树 插入 查询 k远/近询问 重构 K-D 树优化建边 后记 因为之前找不到全的博客,唯一的一篇码风比较毒瘤... 所以我就来写了 K-D树 大概是高维二叉树吧 每次按一个 ...
- idea快捷键(mac下)
ctrl+/ 代码提示 command+o 搜索要进入的类并进入 command+shift+enter 另起一行 command+shift+u 在变成全大写与变成全小写之间切换 shift+鼠标滑 ...
- Dubbo学习系列之十五(Seata分布式事务方案TCC模式)
上篇的续集. 工具: Idea201902/JDK11/Gradle5.6.2/Mysql8.0.11/Lombok0.27/Postman7.5.0/SpringBoot2.1.9/Nacos1.1 ...
- 02-05 scikit-learn库之线性回归
目录 scikit-learn库之线性回归 一.LinearRegression 1.1 使用场景 1.2 代码 1.3 参数详解 1.4 属性 1.5 方法 1.5.1 报告决定系数 二.ARDRe ...
- .net Core 发布服务
.net core 发布服务 准备好的文件可以通过下面的几个命令进行操作 1.创建Service sc create "服务名" binPath= "文件路径+文件名&q ...
- 《java编程思想》P140-P160(第七章复部+第八章部分)
1.不用修饰符 修饰的方法或类,它们的修饰符是 默认修饰符,即 包访问权限(包内都可以用)(临时记的) 2. final数据: 对于基本类型,final使数值恒定不变,而对于对象引用,final使引用 ...
- 6个Linux运维典型问题,看大牛的分析解决思路
问题1:文件系统破坏导致系统无法启动 Checking root filesystem /dev/sda6 contains a file system with errors, check forc ...
- django模型中有外键关系的表删除相关设置
0904自我总结 django模型中有外键关系的表删除相关设置 一.一对一 例如有Author.AuthorDetail两表 author = models.OneToOneField(to='Aut ...