参考来自: 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. Codeforces Round #324 (Div. 2) B

    B. Kolya and Tanya time limit per test 1 second memory limit per test 256 megabytes input standard i ...

  2. 石子归并的三种打开方式——难度递增———51Node

    1021 石子归并    N堆石子摆成一条线.现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的代价.计算将N堆石子合并成一堆的最小代价.   ...

  3. Build RPM package from source code

    # yum install rpm-build# wget http://rsync.samba.org/ftp/rsync/rsync-3.0.9.tar.gz# vim rsync.specNam ...

  4. webpack最佳入门实践系列(5)

    9.路径相关 原来我们打包的东西都存放到了dist目录下,并没有进行分类存储,乱成一团,这一节我们就要处理一下打包的路径,让打包后的目录看起来更加优雅 9.1.代码准备 我们先建立起这样一个目录结构 ...

  5. java equals 与 hashCode

    转:http://m.blog.csdn.net/blog/pengchua/2297547# 如果你为某个类写了equals方法,那么应该同时编写hashCode方法.如果没有提供hashcode方 ...

  6. 百度之星初赛(A)——T1

    小C的倍数问题 Problem Description 根据小学数学的知识,我们知道一个正整数x是3的倍数的条件是x每一位加起来的和是3的倍数.反之,如果一个数每一位加起来是3的倍数,则这个数肯定是3 ...

  7. css3文件树

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  8. python xpath 基本用法

    转自:http://www.pythoner.cn/home/blog/python-xpath-basic-usage/ Pyer发现 业界资讯 相册 第7期:Pythoner技术交流沙龙 关于我们 ...

  9. OpenGL入门学习(四)

    http://blog.csdn.net/sun6255028/article/details/5090055 OpenGL支持两种颜色模式:一种是RGBA,一种是颜色索引模式.无论哪种颜色模式,计算 ...

  10. js生成一周内的日期+周几

    (如有错敬请指点,以下是我工作中遇到并且解决的问题) 效果有两种: 两者区别是 1.第一天(今天)显示今日 2.第一天(今天)显示周几 (第一个图是在手机上显示的效果,第二个是PC网页上显示的效果) ...