依赖jar包
<!-- https://mvnrepository.com/artifact/ch.qos.logback/logback-core -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.1.7</version>
</dependency>
<!-- https://mvnrepository.com/artifact/ch.qos.logback/logback-classic -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.1.7</version>
</dependency>
 
logback配置文件加载,根据以下步骤寻找配置文件:
1. 在 classpath 中寻找 logback-test.xml文件
2.如果找不到 logback-test.xml,则在 classpath 中寻找 logback.groovy 文件
3.如果找不到 logback.groovy,则在 classpath 中寻找 logback.xml文件
 
日志级别 从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,如果设置为WARN,则低于WARN的信息都不会输出。
 
Appender 为日志输出目的地,常用的几种如下:
ch.qos.logback.core.ConsoleAppender:把日志添加到控制台
ch.qos.logback.core.FileAppender:把日志添加到文件
ch.qos.logback.core.rolling.RollingFileAppender:滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件。rollingPolicy告知当发生滚动时,决定 RollingFileAppender 的行为。rollingPolicy有TimeBasedRollingPolicy: 最常用的滚动策略,它根据时间来制定滚动策略;SizeAndTimeBasedRollingPolicy :有时候你不仅想通过时间来规定滚动策略,还希望同时限制每个日志文件的大小就用它了。triggeringPolicy:告知 RollingFileAppender 激活滚动。triggeringPolicy中SizeBasedTriggeringPolicy: 查看当前活动文件的大小,如果超过指定大小会告知激活滚动
 
pattern 控制输出的内容
%c,%c{参数},%C{参数},%class{参数},%lo{参数},%logger{参数}:输出类名称
 
%c org.apache.com.te.Foo org.apache.com.te.Foo
%c{1} org.apache.com.te.Foo Foo
%c{2} org.apache.com.te.Foo te.Foo
%c{1.} org.apache.com.te.Foo o.a.c.t.Foo
%c{1.1.!} org.apache.com.te.Foo o.a.!.!.Foo
%c{.} org.apache.com.te.Foo ….Foo
%d{参数},%date{参数}:输出时间。参数可以是text.SimpleDateFormat字符拼接而成,也可以使用系统默认
%d 2006-10-20 14:06:49,812
%date 2006-10-20 14:06:49,812
%date{ISO8601} 2006-10-20 14:06:49,812
%date{HH:mm:ss.SSS} 14:06:49.812
%date{dd MMM yyyy ;HH:mm:ss.SSS} 20 oct. 2006;14:06:49.812
%L,%line:输出执行日志请求的行号。尽量避免使用,除非执行速度不造成任何问题。
%m或%msg或%message:输出日志信息
%M或%method:输出方法名
%p,%le,%level:输出日志级别
%t,%thread:输出产生日志的线程名。
 
logback.xml配置文件
<?xml version="1.0" encoding="UTF-8"?>
<configuration> <!-- 引入配置文件中的变量 logback.properties 定义了一个值log_path-->
<property resource="logback.properties" /> <!-- 自己声明一个变量 -->
<!-- <property name="log_path" value="${catalina.home}" /> --> <!-- 控制台输出 -->
<appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%date{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender> <!-- 按分钟时间滚动输出 level为 INFO 日志 -->
<appender name="file—debug" class="ch.qos.logback.core.rolling.RollingFileAppender">
<File>${log_path}/logs/debug.log</File>
<!--控制台只输出level级别的信息(onMatch),其他的直接拒绝(onMismatch) -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY </onMismatch>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>${log_path}/logs/debug.%d{yyyy-MM-dd_HH-mm}.log</FileNamePattern>
<!-- 保留的归档文件的最大数量,超出数量就删除旧文件,此处是按分钟滚动,30则代表30分钟 -->
<MaxHistory>30</MaxHistory>
</rollingPolicy>
<encoder>
<pattern>%date [%thread] %-5level %logger{80} - %msg%n</pattern>
</encoder>
</appender> <!-- 特定过滤含有某字符串的日志 -->
<appender name="file-str" class="ch.qos.logback.core.rolling.RollingFileAppender">
<File>${log_path}/logs/contains.log</File>
<filter class="ch.qos.logback.core.filter.EvaluatorFilter">
<evaluator>
<!-- 日志信息中需要包含指定的字符串 -->
<expression>message.contains("abc")</expression>
</evaluator>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>${log_path}/logs/contains.%d{yyyy-MM-dd}.log </FileNamePattern>
<MaxHistory>30</MaxHistory>
</rollingPolicy>
<encoder>
<pattern>%date [%thread] %-5level %logger{80} - %msg%n</pattern>
</encoder>
</appender> <!-- 按照每天和每个日志文件大小生成日志文件 -->
<appender name="audioDist" class="ch.qos.logback.core.rolling.RollingFileAppender">
<File>${log_path}/logs/audioDist.log</File>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!--日志文件输出的文件名-->
<FileNamePattern>${log_path}/logs/audioDist.%d{yyyy-MM-dd}.%i.log</FileNamePattern>
<!--日志文件保留天数-->
<MaxHistory>30</MaxHistory>
<!-- 单个日志文件的大小 单位KB,MB,GB -->
<maxFileSize>1KB</maxFileSize>
<!-- 所有日志文件的总大小空间。当日志文件的空间超过了设置的最大空间数量,就会删除旧的文件。注意:这个标签必须和maxHistory标签一起使用。 -->
<totalSizeCap>10MB</totalSizeCap>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
</encoder>
</appender> <!-- 指定包输出指定级别日志 -->
<logger name="com.gavin">
<level value="warn" />
</logger> <root level="DEBUG">
<appender-ref ref="stdout" />
<appender-ref ref="audioDist"/>
<appender-ref ref="file—debug"/>
<appender-ref ref="file-str"/>
</root>
</configuration>
 
 
 
 
 
 
 

logback常见配置的更多相关文章

  1. logback 常用配置详解<appender>

    logback 常用配置详解 <appender> <appender>: <appender>是<configuration>的子节点,是负责写日志的 ...

  2. 【转】logback 常用配置详解(序)logback 简介

    原创文章,转载请指明出处:http://aub.iteye.com/blog/1101222, 尊重他人即尊重自己 详细整理了logback常用配置, 不是官网手册的翻译版,而是使用总结,旨在更快更透 ...

  3. logback 常用配置详解(二) <appender>

    logback 常用配置详解(二) <appender> <appender>: <appender>是<configuration>的子节点,是负责写 ...

  4. spring 3.2.x + struts2 + mybatis 3.x + logback 整合配置

    与前面的一篇mybatis 3.2.7 与 spring mvc 3.x.logback整合 相比,只是web层的MVC前端框架,从spring mvc转换成struts 2.x系列,变化并不大 一. ...

  5. 使用logback.xml配置来实现日志文件输出

    转自:http://sungang-1120.iteye.com/blog/2104296 Logback是由log4j创始人设计的又一个开源日志组件.logback当前分成三个模块:logback- ...

  6. MyEclipse常见配置及调试

    常见配置 1.配置workspace ----- 建议不要采用含有空格和中文目录 所有代码保存workspace空间中2.新建工程时,设置工程需要jre环境MyEclipse提供多种内置layout ...

  7. Httpd2.2常见配置及功能

    Httpd 2.2常见配置 要配置http服务的配置文件,先备份一下,养成良好习惯,如果误操作导致http服务起不来,就可以将备份的主配置文件重新覆盖一下 httpd配置文件的组成:有三大部分组成,其 ...

  8. logback使用配置详解

    title: logback使用配置详解 date: 2017-04-25 16:42:49 tags: 日志 --- 1.介绍 Logback是由log4j创始人设计的另一个开源日志组件,它当前分为 ...

  9. logback常用配置详解及logback简介

    logback 简介(一) Ceki Gülcü在Java日志领域世界知名.他创造了Log4J ,这个最早的Java日志框架即便在JRE内置日志功能的竞争下仍然非常流行.随后他又着手实现SLF4J 这 ...

随机推荐

  1. xgboost学习与总结

    最近在研究xgboost,把一些xgboost的知识总结一下.这里只是把相关资源作总结,原创的东西不多. 原理 xgboost的原理首先看xgboost的作者陈天奇的ppt 英文不太好的同学可以看看这 ...

  2. [CF966F]May Holidays[分块+虚树]

    题意 给定 \(n\) 个点的树,初始所有颜色都是 \(0\) ,每个点有一个阈值 \(t\) ,每次可能会让一个点的颜色异或1,问每次操作之后有多少个点满足子树内的颜色为 \(1\) 的点的个数 \ ...

  3. elasticsearch同步mongodb--mongo connector的使用

    部署准备 python-3.6.4-amd64.exe mongodb-win32-x86_64-3.4.6-signed.msi  (如果已经安装可以忽略) 注意点! 之前我写的一篇文章用的是ela ...

  4. OpenMPI源码剖析:网络通信原理(二) 如何选择网络协议?

    因为比较常用的是 TCP 协议,所以在 opal/mca/btl/tcp/btl_tcp.h 头文件中找到对应的 struct mca_btl_tcp_component_t { mca_btl_ba ...

  5. C/C+ 感触

    1.       C/C++语言开发的首选利器- C++Test       以前在windows平台下的开发,使用的框架主要是MFC,以及console工程(基于win32SDK),属于纯C/C++ ...

  6. [福大软工] Z班 个人项目自动测试结果

    个人项目第二次测试结果[9.16] 注:下表中的成绩满分为25分,正确性测试 共5个,每个3分.效率测试共 2个,每个5分. 根据数据统计分档如下, // 前为档级,后为分数. 参数为50000 0- ...

  7. Beta版本冲刺(三)

    目录 组员情况 组员1(组长):胡绪佩 组员2:胡青元 组员3:庄卉 组员4:家灿 组员5:凯琳 组员6:翟丹丹 组员7:何家伟 组员8:政演 组员9:黄鸿杰 组员10:刘一好 组员11:何宇恒 展示 ...

  8. 淘宝店铺模板开发SDK2.0下载安装图文教程

    使用TortoiseSVN Checkout TAE SDK2.0 废话少说,切入主题: 1.在http://tortoisesvn.net/downloads.html上下载TortoiseSVN ...

  9. Apache DBUtils框架 结果处理器

    package com.itheima.dbutil; import java.util.List; import java.util.Map; import org.apache.commons.d ...

  10. 『编程题全队』Alpha阶段事后诸葛亮分析

    一.设想和目标 1. 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? Answer: (1)我们软件主要解决个人和团队的事务管理问题 (2)我们软件的定义明确和清楚 ...