依赖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. idea 中全局查找不到文件 (两shift),单页搜索不到关键字的原因

    全局查找不到文件是因为把要找的目录的本级或者上级设置为了额外的,所以自然找不到 而单页搜索不到内容是因为设置了words关键字,这个要全部都输入完才能找到(也就是整个关键字进行匹配,匹配到了整体才会查 ...

  2. Security7:管理SQL Server Agent的权限

    SQL Server Agent对象包括警报(Alert),操作员(Operator),Job,调度(Schedule)和代理(Proxy),SQL Server使用msdb系统数据库管理Agent ...

  3. Android Studio Xposed模块编写(二)

    阅读本文前,假设读者已经看过Android Studio Xposed模块编写(一)  相关环境已经搭建完成.本文演示案例与上文环境一致,不在赘述. 1.概述 Xposed是非常牛叉的一款hook框架 ...

  4. Markdown之语法入门篇

    Markdown语法入门 一.什么是Markdown语言 我相信有很多小伙伴没有听说过Markdown语言.的确,对于一般人来说,有word足够了.但是有这么一群人,受够了word那糟糕的排版方式,需 ...

  5. SpringBoot日记——MQ消息队列整合(一)

    除了之前讲到的缓存,我们还会用到消息队列来存储一些消息,为了提升系统的异步性能等等: 消息服务有两个概念需要知道:消息代理-message broker,目的地-destination.消息发送由代理 ...

  6. Linux/Mac 挂载远程服务器目录到本地

    1. 安装 sudo apt-get installsshfs 2. 创建SSHFS 挂载目录 sudo mkdir/mnt/siyuan 3.使用SSHFS 挂载远程的文件系统 sudo sshfs ...

  7. 微软职位内部推荐-SW Engineer II for Embedded System

    微软近期Open的职位: Do you have a passion for embedded devices and services? &nbsp Does the following m ...

  8. PAT甲题题解-1022. Digital Library (30)-map映射+vector

    博主欢迎转载,但请给出本文链接,我尊重你,你尊重我,谢谢~http://www.cnblogs.com/chenxiwenruo/p/6789235.html特别不喜欢那些随便转载别人的原创文章又不给 ...

  9. 软件项目第一次sprint评分表

  10. VS2013新建web项目时出错,系统找不到指定文件

    好不容易找了一个VS2013_RTM_ULT_CHS来安装好,Key:BWG7X-J98B3-W34RT-33B3R-JVYW9 兴高采烈的打开vs2013,新建web项目,结果弹出一个错误: 傻眼了 ...