logback.xml模板详解
<?xml version="1.0" encoding="UTF-8"?> <!-- 配置文件每隔1分钟,就检查更新 -->
<configuration scan="true" scanPeriod="60 seconds" debug="false" >
<!-- 定义参数常量,便于后面直接用${name}来获取value值 -->
<property name="log.pattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%-5level] %logger{50} - %msg%n"/>
<property name="log.filePath" value="${catalina.base}/logs/webapps"/>
<property name="log.maxHistory" value="30"/> <!-- ch.qos.logback.core.ConsoleAppender 控制台输出 -->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<!-- 过去使用layout,现在都推荐使用encoder
13 作用一:将日志信息转换(格式化)为字符串
14 作用二:然后写入到文件中-->
<encoder>
<pattern>${log.pattern}</pattern>
</encoder>
</appender> <!-- ch.qos.logback.core.rolling.RollingFileAppender 文件日志输出到文件 -->
<!-- 1.打印debug级别日志的设置 -->
<appender name="debugAppender"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 例如当天,也就是今天是2019-2-19,那么在这天生成的日志文件路径为${log.filePath}/debug.log
25 接着到了明天,也就是2019-2-20,这天生成的日志文件路径为${log.filePath}/debug.log,
26 但昨天2019-2-19,生成的日志文件路径就变为${log.filePath}/debug/debug-2019-2-19.log.gz(压缩文件) --> <!-- 当天生成的日志文件的路径 -->
<file>${log.filePath}/debug.log</file>
<!-- 设置基于时间(每天)的滚动策略,也就是将日志内容按照日期来写入到相应的文件中-->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 当天之前的每天生成的日志文件的路径 -->
<fileNamePattern>${log.filePath}/debug/debug-%d{yyyy-MM-dd}.log.gz
</fileNamePattern>
<!-- 最大历史保存文件的数量,只保存最近30天的日志文件,超出的会被删除-->
<maxHistory>${log.maxHistory}</maxHistory>
</rollingPolicy>
<!-- 过去使用layout,现在都推荐使用encoder
作用一:将日志信息转换(格式化)为字符串
作用二:然后写入到文件中-->
<encoder>
<pattern>${log.pattern}</pattern>
</encoder>
<!-- 过滤掉非debug级别的信息 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>debug</level>
<onMatch>ACCEPT</onMatch>
<!-- 作用是拒绝写入所有与<level>不匹配的日志信息,
49 也就是非debug级别的日志信息都不会被写入到日志文件中 -->
<onMismatch>DENY</onMismatch>
</filter>
</appender> <!-- 2.打印info级别日志的设置 -->
<appender name="infoAppender"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 例如当天,也就是今天是2019-2-19,那么在这天生成的日志文件路径为${log.filePath}/info.log
接着到了明天,也就是2019-2-20,这天生成的日志文件路径为${log.filePath}/info.log,
但昨天2019-2-19,生成的日志文件路径就变为${log.filePath}/info/info-2019-2-19.log.gz(压缩文件) --> <!-- 当天生成的日志文件的路径 -->
<file>${log.filePath}/info.log</file>
<!-- 设置基于时间(每天)的滚动策略,也就是将日志内容按照日期来写入到相应的文件中-->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 当天之前的每天生成的日志文件的路径 -->
<fileNamePattern>${log.filePath}/info/info-%d{yyyy-MM-dd}.log.gz
</fileNamePattern>
<!-- 最大历史保存文件的数量,只保存最近30天的日志文件,超出的会被删除-->
<maxHistory>${log.maxHistory}</maxHistory>
</rollingPolicy>
<!-- 过去使用layout,现在都推荐使用encoder
作用一:将日志信息转换(格式化)为字符串
作用二:然后写入到文件中-->
<encoder>
<pattern>${log.pattern}</pattern>
</encoder>
<!-- 过滤掉非info级别的信息 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>info</level>
<onMatch>ACCEPT</onMatch>
<!-- 作用是拒绝写入所有与<level>不匹配的日志信息,
也就是非info级别的日志信息都不会被写入到日志文件中 -->
<onMismatch>DENY</onMismatch>
</filter>
</appender> <!-- 3.打印error级别日志的设置 -->
<appender name="errorAppender"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 例如当天,也就是今天是2019-2-19,那么在这天生成的日志文件路径为${log.filePath}/error.log
接着到了明天,也就是2019-2-20,这天生成的日志文件路径为${log.filePath}/error.log,
但昨天2019-2-19,生成的日志文件路径就变为${log.filePath}/error/error-2019-2-19.log.gz(压缩文件) --> <!-- 当天生成的日志文件的路径 -->
<file>${log.filePath}/error.log</file>
<!-- 设置基于时间(每天)的滚动策略,也就是将日志内容按照日期来写入到相应的文件中-->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 当天之前的每天生成的日志文件的路径 -->
<fileNamePattern>${log.filePath}/error/error-%d{yyyy-MM-dd}.log.gz
</fileNamePattern>
<!-- 最大历史保存文件的数量,只保存最近30天的日志文件,超出的会被删除-->
<maxHistory>${log.maxHistory}</maxHistory>
</rollingPolicy>
<!-- 过去使用layout,现在都推荐使用encoder
作用一:将日志信息转换(格式化)为字符串
作用二:然后写入到文件中-->
<encoder>
<pattern>${log.pattern}</pattern>
</encoder>
<!-- 过滤掉非error级别的信息 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>error</level>
<onMatch>ACCEPT</onMatch>
<!-- 作用是拒绝写入所有与<level>不匹配的日志信息,
也就是非error级别的日志信息都不会被写入到日志文件中 -->
<onMismatch>DENY</onMismatch>
</filter>
</appender> <!-- 监听com.imooc.o2o包下所有类产生的日志信息
不设置additivity属性,那么默认additivity = true,表示会继承父级(在这里它的父级只有root一个),
也就是会将日志信息也输出在控制台,但级别会覆盖父级的级别,也就是在控制台会输出debug级别及以上的日志信息 -->
<logger name="com.imooc.o2o" level="debug">
<!-- 表示按照debugAppender的设置去打印日志 -->
<appender-ref ref="debugAppender"/>
<!-- 表示按照infoAppender的设置去打印日志 -->
<appender-ref ref="infoAppender"/>
<!-- 表示按照errorAppender的设置去打印日志 -->
<appender-ref ref="errorAppender"/>
</logger> <!-- 也是一种<logger>,是所有<logger>的父级 -->
<!-- 不设置additivity属性,或者设置additivity = true的<logger>,会继承root的子标签<appender-ref ref="console" />的设置,
将它自己设置的level属性级别及以上的日志打印到控制台 -->
<root level="info">
<!-- 表示按照console的设置去输出日志到控制台 -->
<appender-ref ref="console" />
</root> </configuration>
注意:
1. ${catalina.base}表示tomcat的工作目录,具体的路径可以通过以下两种方式
a.Tomcat启动时,控制台最先打印的信息中,在前几行会看到 catalina.base ,它后面的路径就是当前项目的tomcat的工作目录
b.一般都在此目录中可以找到所有已部署项目的Tomcat的工作目录:
C:\Users\0(这是电脑的本机账号)\
.IntelliJIdea2018.2(这是Tomcat集成的IDE工具,我使用的是IDEA)\
system\tomcat\Unnamed_o2o(项目名)
2. logback.xml文件的目录位置
maven项目,请放在classpath下,也就是src/main/resource文件夹下,否则系统解析不到logback.xml文件
3. 需要的jar包
<!--日志logback,默认scope是compile,也就是从编译时就起作用了-->
<!-- https://mvnrepository.com/artifact/ch.qos.logback/logback-classic -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>
logback.xml模板详解的更多相关文章
- c3p0-config.xml模板详解
c3p0-config.xml模板详解 <c3p0-config> <default-config> <!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数.De ...
- logback.xml配置详解
先附上本文分析用的例子: <?xml version="1.0" encoding="UTF-8" ?> <configuration> ...
- (转)Spring boot——logback.xml 配置详解(二)
文章转载自:http://aub.iteye.com/blog/1101260,在此对作者的辛苦表示感谢! 1 根节点<configuration>包含的属性 scan: 当此属性设置为t ...
- Spring boot——logback.xml 配置详解(二)
阅读目录 1 根节点包含的属性 2 根节点的子节点 文章转载自:http://aub.iteye.com/blog/1101260,在此对作者的辛苦表示感谢! 回到顶部 1 根节点<config ...
- 常用logback.xml配置详解
选择logback的理由 ==logback==与==log4j==的简单对比一下: 1.首先,对于同样的代码路径,==logback==使用起来更快. 2.==logback==原生实现了log4j ...
- logback.xml配置文件详解
越是老司机越会对日志重视. 如下配置实现了 1.日志文件使用相对路径输出. 2.从日期与文件大小两个纬度分割. 3.特定包与类的日志输出 ** 当存在多个name相同的logger时,逻辑不是很清楚 ...
- logback.xml 配置详解(转)
<?xml version="1.0" encoding="UTF-8"> <configuration> <!-- 设置控制台日 ...
- (六)logback.xml 配置详解
原文链接:https://www.cnblogs.com/taiyonghai/p/9290641.html,https://blog.csdn.net/A615883576/article/deta ...
- (转)Spring boot——logback.xml 配置详解(四)<filter>
文章转载自:http://aub.iteye.com/blog/1101260,在此对作者的辛苦表示感谢! 1 filter的使用 <filter>: Logback的过滤器基于三值逻辑( ...
随机推荐
- FileUpload一键自动上传
背景 源程序二次修改 传统的Asp.net WebForm开发 上传控件样式可自定义 分析 不能用第三方插件,因为源程序开发模式对异步的支持不友好而第三方插件大都是针对异步编程的 兼容IE8及以上和其 ...
- 译:面试投行的20个Java问题
原文链接:https://dzone.com/articles/var-work-in-progress 作者:Anghel Leonard 译者:沈歌 如果你需要准备面试,可以看一下这篇博客中20个 ...
- css 简单梯形
通过css2D变形我们可以轻松得到平行四边形,那么通过此技巧可以得到梯形吗? no! 不过我们可以通过3D旋转得到类似这样的效果: transform:perspective(0.5em) rota ...
- 关于 C# 中接口的一些小结
< 关于 C# 中“接口”的一些小结 > 对于 C# 这样的不支持多重继承的语言,很好的体现的层次性,但是有些时候多重继承的确有一些用武之地. 比如,在 Stream 类 . 图形设备 ...
- Aligning Plots in a Column作图列对齐
Plot[Sin[x], {x, 0, Pi}] Plot[10000 Sin[x], {x, 0, Pi}] 直接作图左边无法对齐,影响图的美观.可以使用左边界空格实现列对齐,代码如下: optio ...
- TortoiseGit客户端安装及使用(上传代码到git@osc
用TortoiseGit客户端之前要下载安装git http://git-scm.com/download/win 下载完安装完就可以了,之后好像就用不上了,全交给TortoiseGit客户端了 第一 ...
- Exchange 域用户无权管理邮箱
将需要管理邮箱的域用户添加至“Microsoft Exchange Security Groups”用户组即可.
- requireJS的优化工具 ---- r.js
requireJS是javascript的模块加载器,是基于AMD规范实现的. r.js是其提供的对模块进行打包和构建的一个工具 下载 r.js 创建r.js 的配置文件 build.js build ...
- 好记性不如烂笔头-nginx安装环境与Linux安装ftp组件
Nginx安装环境 1. Nginx安装环境 Nginx是C语言开发,建议在linux上运行,我参加工作这些年来一直使用Linux发行版之一的 Centos作为安装环境. 1.1 gcc 安装Ngin ...
- IEEP-网络设计
IEEP-网络设计 网络设计概述 网络设计概述 1.负责把网络规划阶段获得的客户需求运用技术手段予以规范化体现 2.网络设计一般遵循模块化指导方针,分模块进行设计 3.网络设计的输出成果必须是规范的. ...