参考来自: 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. GDB调试——经验总结

    GDB调试的一些很有用经验: 1. gdb调试,如果有参数,可以在run命令后加,也可以使用set args :如果是使用gdbserver+gdb的远程调试方式,参数可以在gdbserver后面加. ...

  2. 忽略node_modules目录

    如上图所示添加node_modules目录到忽略文件列表里面,点击应用就可以了.

  3. Hibernate的注释该如何使用?每一个注释代表什么意思?

    出自:java快快飞 原文地址:http://blog.sina.com.cn/s/blog_697b968901016s31.html Hibernate的注释该如何使用?每一个注释代表什么意思? ...

  4. box-pack

    box-pack表示父容器里面子容器的水平对齐方式,可选参数如下所示: start | end | center | justify <article class="wrap" ...

  5. 洛谷noip 模拟赛 day1 T3

    T7983 大芳的逆行板载 题目背景 大芳有一个不太好的习惯:在车里养青蛙.青蛙在一个n厘米(11n毫米s)的Van♂杆子上跳来跳去.她时常盯着青蛙看,以至于突然逆行不得不开始躲交叉弹.有一天他突发奇 ...

  6. http://twitter.github.com/bootstrap/

    原文发布时间为:2012-05-22 -- 来源于本人的百度文章 [由搬家工具导入] http://twitter.github.com/bootstrap/

  7. RadioGroup和RadioButton(单选框)

    1.布局文件 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:t ...

  8. Hoof, Paper, Scissors(USACO)

    题目大意: 一种游戏(类似于石头剪刀布):两个人分别给出一个字母,然后比较:H>S,S>P,P>H,我们已知对手的字母顺序,求在前n局中我们最多能赢多少次. 由于出字母的人非常懒,所 ...

  9. 战斗机的祈雨仪式(NOIP模拟赛Round 7)

    [问题描述] 炎炎夏日,如果没有一场大雨怎么才能尽兴?秋之国的人民准备了一场祈雨仪式.战斗机由于拥有操纵雷电的能力,所以也加入了其中,为此,她进行了一番准备. 战斗机需要给自己的Spear of Lo ...

  10. web应用性能优化经验总结

    常见性能优化要求      在我经历的性能优化案例中,常见的问题都是这样开始的:      a) 前台访问很慢,请帮忙分析优化      b) 用户对性能很不满意,再不解决就要投诉      c) 数 ...