参考来自: Java深入 - logback的配置和使用

1 模块组成

logback分成三个模块:logback-core,logback- classic和logback-access。

 logback-core:其他两个的基础模块。
logback-classic:log4j的改良版本。完整实现slf4j的api,因此可以很方便的换成其他日志系统。
logback-access:与servlet集成,提供通过http来访问日志的功能。

2 maven依赖

        <dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j-version}</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>${logback-version}</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>{logback-version}</version>
</dependency>

3 配置文件

3.1 存放位置

logback的配置文件都放在/src/main/resource/文件夹下的logback.xml文件中,系统会自动找到这个配置文件。

也可以自定义配置文件的位置:

3.2  在控制台输出指定级别的日志

 <?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<!-- 典型的日志pattern -->
<encoder>
<pattern>[AAS] [%date{yyyy-MM-dd HH:mm:ss.SSS}] [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<root>
<level value="error"/>
<appender-ref ref="console"/>
</root>
</configuration>

3.3 在文件中存放指定级别的日志

 <?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- 综合时间与大小的滚动策略,先按小时滚动,小时内的文件大于10mb时再按大小滚动 -->
<appender name="logFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>/var/log/local/xinsight/aas/aas.log</file>
<Encoding>UTF-8</Encoding>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>/var/log/local/xinsight/aas/aas-%d{yyyy-MM-dd_HH}.%i.zip</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>10MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy> <encoder>
<pattern>[AAS] [%date{yyyy-MM-dd HH:mm:ss.SSS}] [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender> <root>
<level value="WARN"/>
20 <level value="INFO"/>
<appender-ref ref="logFile" />
</root>
</configuration>

3.4 精确设置每个包下面的日志

     <logger name="com.service" level="WARN"/>
<logger name="com.common" level="DEBUG"/>
<logger name="dao" level="DEBUG">
<appender-ref ref="file" />
<appender-ref ref="console" />
</logger>

3.5 完整示例

 <?xml version="1.0" encoding="UTF-8"?>
<configuration> <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<!-- 典型的日志pattern -->
<encoder>
<pattern>[AAS] [%date{yyyy-MM-dd HH:mm:ss.SSS}] [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender> <!-- 演示按时间滚动的策略 -->
<!--<appender name="defaultlogFile" class="ch.qos.logback.core.rolling.RollingFileAppender">-->
<!--<file>/tmp/logs/authmgr.log</file>-->
<!-- -->
<!--<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">-->
<!--<fileNamePattern>/tmp/logs/authmgr.%d{yyyy-MM-dd}.log</fileNamePattern>-->
<!--&lt;!&ndash; 保留 30天数据,默认无限&ndash;&gt;-->
<!--<maxHistory>30</maxHistory>-->
<!--</rollingPolicy>-->
<!-- -->
<!--<encoder>-->
<!--<pattern>%date{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>-->
<!--</encoder>-->
<!--</appender>--> <!-- 按文件大小滚动的策略 -->
<!--<appender name="metricsLogFile" class="ch.qos.logback.core.rolling.RollingFileAppender">-->
<!--<file>/tmp/logs/metrics.log</file>-->
<!-- -->
<!--<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">-->
<!--<fileNamePattern>/tmp/logs/metrics.%i.log</fileNamePattern>-->
<!--&lt;!&ndash; 最多保留10个文件,默认是7 &ndash;&gt;-->
<!--<maxIndex>10</maxIndex>-->
<!--</rollingPolicy>-->
<!-- -->
<!--<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">-->
<!--<maxFileSize>10MB</maxFileSize>-->
<!--</triggeringPolicy>-->
<!-- -->
<!--<encoder>-->
<!--<pattern>%msg%n</pattern>-->
<!--</encoder>-->
<!--</appender>--> <!-- 综合时间与大小的滚动策略,先按小时滚动,小时内的文件大于10mb时再按大小滚动 -->
<appender name="logFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>/var/log/local/xinsight/aas/aas.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>/var/log/local/xinsight/aas/aas-%d{yyyy-MM-dd_HH}.%i.zip</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>10MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy> <encoder>
<pattern>[AAS] [%date{yyyy-MM-dd HH:mm:ss.SSS}] [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender> <logger name="com.mchange" level="WARN"/>
<logger name="com.service" level="DEBUG"/>
<logger name="dao" level="DEBUG"/> <!-- root -->
<root level="WARN">
<appender-ref ref="console"/>
<appender-ref ref="logFile" />
</root>
</configuration>

3.6 logger和root的区别

参考来自:http://www.cnblogs.com/cb0327/p/5759441.html

 logger:
用来设置具体的包或类的日志打印级别。
仅有一个name属性,一个可选的level和一个可选的addtivity属性。
addtivity表示是否继承上级的打印级别,比如<logger name="com.service"/>将控制com.service包下的所有类的日志打印,
但是并没用设置打印级别,所以继承他的上级<root>的日志级别“DEBUG”;
可以指定appender。
root:
也是<loger>元素,但是它是根loger。
只有一个level属性。

4 代码中使用

 import org.slf4j.Logger;
import org.slf4j.LoggerFactory; public abstract class Test{
protected Logger logger = LoggerFactory.getLogger(this.getClass());   logger.info("info");
  logger.error("error", tenantName, users.size());
  logger.debug("debug");
}

2017.7.27 logback配置文件的更多相关文章

  1. 团队作业4——第一次项目冲刺(Alpha版本)2017.4.27

    2017.04.27 天气阴沉 小雨. 时间:上午 9:35 ---10:10分 地点:陆大314实验室 会议内容:每天充分利用好大课间的时间,今天对昨天的的细节问题进行了讨论及方法更正.时间不等人这 ...

  2. Spring+SpringMVC+Mybaties整合之配置文件如何配置及内容解释--可直接拷贝使用--不定时更改之2017/4/27

    以下配置可直接使用,只需更改包名. 关于内部标签的解释及用法,都以注解形式在代码内部说明.个人原创,转载需注明出处. 1,web.xml.添加jar包后首先需要配置WEB-INF下的web.xml文件 ...

  3. logback配置文件详解

    一:根节点<configuration>包含的属性: scan: 当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true. scanPeriod: 设置监测配置文 ...

  4. logback配置文件

    logback-spring.xml 通用配置文件如下: <?xml version="1.0" encoding="UTF-8"?> <co ...

  5. Spring Boot项目的Logback配置文件使用yaml格式

    1.普通的Spring项目使用logback默认用properties文件做为配置变量. 2.如果非要用yaml文件,那么可以转成Spring Boot项目,天生无缝结合 3.没办法,如果项目配置文件 ...

  6. logback配置文件---logback.xml详解

    一.参考文档 1.官方文档 http://logback.qos.ch/documentation.html 2.博客文档 http://www.cnblogs.com/warking/p/57103 ...

  7. 180623-SpringBoot之logback配置文件

    SpringBoot配置logback 项目的日志配置属于比较常见的case了,之前接触和使用的都是Spring结合xml的方式,引入几个依赖,然后写个 logback.xml 配置文件即可,那么在S ...

  8. Logback配置文件这么写,TPS提高10倍

    通过阅读本篇文章将了解到 1.日志输出到文件并根据LEVEL级别将日志分类保存到不同文件 2.通过异步输出日志减少磁盘IO提高性能 3.异步输出日志的原理 配置文件logback-spring.xml ...

  9. springBoot 中 logback配置文件详解

    logback介绍和配置详解 logback是Java的开源框架,性能比log4j要好.是springboot自带的日志框架.该框架主要有3个模块: logback-core:核心代码块(不介绍) l ...

随机推荐

  1. Avito Cool Challenge 2018 :E. Missing Numbers

    E. Missing Numbers 题目链接:https://codeforces.com/contest/1081/problem/E 题意: 现在有n个数(n为偶数),但只给出a2,a4.... ...

  2. gdb 记录临时变量

    gdb ./pgm set logging file log set logging on ... set logging off gdb ./pgm | tee -a log ... file a. ...

  3. linux用户态定时器的使用---19【转】

    转自:http://www.cnblogs.com/zxouxuewei/p/5095288.html 原创博文,转载请标明出处--周学伟http://www.cnblogs.com/zxouxuew ...

  4. LVDS 数据通道详解 单8 单6

    1.1.1           LVDS接口分类 1.1.1.1              单路6bit LVDS 这种接口电路中,采用单路方式传输,每个基色信号采用6位数据,共18位RGB数据,因此 ...

  5. VS2013 MFC listcontrol 双击编辑

    原文地址:http://blog.csdn.net/xianglifighter/article/details/17592209 最近在拿一些小的项目练习MFC,遇到不少问题,期中之一便是修改列表框 ...

  6. Jquery Dom节点常用操作

    select 标签 form提交的时候 提交select标签选中的value值 1. 添加项 $("#select_id").append("<option val ...

  7. Appium+python自动化9-SDK Manager【转载】

    前言 SDK Manager到有哪些东西是必须安装的呢? 一.SDK Manager 1.双击打开SDK Manager界面

  8. hdu 5138(水题)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5138 反着来. #include<iostream> #include<cstdi ...

  9. AC日记——[HAOI2007]覆盖问题 bzoj 1052

    1052 思路: 二分答案: 二分可能的长度: 然后递归判断长度是否可行: 先求出刚好覆盖所有点的矩形: 可行的第一个正方形在矩形的一个角上: 枚举四个角上的正方形,然后删去点: 删去一个正方形后,递 ...

  10. J.U.C并发框架源码阅读(十五)CopyOnWriteArrayList

    基于版本jdk1.7.0_80 java.util.concurrent.CopyOnWriteArrayList 代码如下 /* * Copyright (c) 2003, 2011, Oracle ...