概述

Logback建立于三个主要类之上:日志记录器(Logger),输出端(Appender)和日志格式化器(Layout)。这三种组件协同工作,使开发者可以按照消息类型和级别来记录消息,还可以在程序运行期内控制消息的输出格式和输出目的地。

1.日志记录器(Logger):控制要输出哪些日志记录语句,对日志信息进行级别限制。
2.输出端(Appender):指定了日志将打印到控制台还是文件中。

3.日志格式化器(Layout):控制日志信息的显示格式。

日志记录器Logger

在logback中只有一个日志记录器Logger,继承自org.slf4j.Logger且是final的。

public final class Logger implements org.slf4j.Logger, LocationAwareLogger,

AppenderAttachable<ILoggingEvent>, Serializable {

}

输出端Appender

Logback提供了非常丰富的输出端Appender。

其中,常用的Appender有以下几个:

ConsoleAppender:打印日志信息到控制台,相当于System.out或者System.err。

FileAppender:打印日志信息到文件中。

RollingFileAppender:根据RollingPolicy和TriggeringPolicy将日志打到相应的文件中。

RollingFileAppender有两个与之互动的重要子组件。第一个是RollingPolicy,负责滚动。第二个是TriggeringPolicy,决定是否以及何时进行滚动。所以,RollingPolicy负责“什么”, TriggeringPolicy负责“何时”。 要想RollingFileAppender起作用,必须同时设置RollingPolicy和TriggeringPolicy。不过,如果RollingPolicy也实现了TriggeringPolicy接口,那么只需要设置RollingPolicy。

让我们来看看这些策略都有哪些吧?

其中,TimeBasedRollingPolicy比较特殊,它同时继承了RollingPolicy和TriggerPolicy。即配置它一个也可以的。

另外在Appender中还使用了一个组件Encoder。

Encoder负责两件事,一是把事件转换为字节数组,二是把字节数组写入输出流。其结构如下:

目前,PatternLayoutEncoder是唯一有用的encoder,它基本上是封装了PatternLayout,让PatternLayout负责大多数工作。因此,似乎encoder并没有带来多少好东西,反而只有不需要的复杂性。然而,我们希望当新的、强大的encoder到来时,这种印象会改变。

日志格式化器Layout

其结构如下所示:

使用方法

logback配置

Logback可以通过编程式配置,或用XML格式的配置文件进行配置。

Logback采取下面的步骤进行自我配置:

1. 尝试在classpath下查找文件logback-test.xml;

2. 如果文件不存在,则查找文件logback.xml;

3. 如果两个文件都不存在,logback用BasicConfigurator自动对自己进行配置,这会导致记录输出到控制台。

Logback嵌入代码使用

引入需要的包:

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

生产logger实例:

要打印的类的开始部分:

private final Logger logger = LoggerFactory.getLogger(getClass());

使用logger实例打印日志

打印形式:

if (logger.isDebugEnabled()) {

logger.debug("To modify role(name={}) to role(name={}).",

updated.getName(), role.getName());

}

Logback_日志使用详解(转)的更多相关文章

  1. lombok+slf4j+logback SLF4J和Logback日志框架详解

    maven 包依赖 <dependency> <groupId>org.projectlombok</groupId> <artifactId>lomb ...

  2. IIS日志字段详解

    IIS日志字段详解 抓住8月的尾巴,弥补下这个月的空白,事情太多,忘了写博客这回事了. IIS日志字段设置                                          网站运营时 ...

  3. 关于syslog日志功能详解 事件日志分析、EventLog Analyzer

    关于syslog日志功能详解 事件日志分析.EventLog Analyzer 一.日志管理 保障网络安全 Windows系统日志分析 Syslog日志分析 应用程序日志分析 Windows终端服务器 ...

  4. MySQL日志功能详解

    MySQL日志功能详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.查询日志 它是用来保存所有跟查询相关的日志,这种日志类型默认是关闭状态的,因为MySQL的用户有很多,如果 ...

  5. syslog之一:Linux syslog日志系统详解

    目录: <syslog之一:Linux syslog日志系统详解> <syslog之二:syslog协议及rsyslog服务全解析> <syslog之三:建立Window ...

  6. SLF4J和Logback日志框架详解

    SLF4J和Logback日志框架详解 作者:chszs,转载需注明.博客主页:http://blog.csdn.net/chszs 本文讲述SLF4J和Logback日志框架.   SLF4J是一套 ...

  7. 项目log4j日志管理详解

    项目log4j日志管理详解 log4j日志系统在项目中重要性在这里就不再累述,我们在平时使用时如果没有特定要求,只需在log4j.properties文件中顶入输出级别就行了.如果要自定义输出文件,对 ...

  8. GC日志分析详解

    点击返回上层目录 原创声明:作者:Arnold.zhao 博客园地址:https://www.cnblogs.com/zh94 GC日志分析详解 以ParallelGC为例,YoungGC日志解释如下 ...

  9. Java中日志组件详解

    avalon-logkit Java中日志组件详解 lanhy 发布于 2020-9-1 11:35 224浏览 0收藏 作为开发人员,我相信您对日志记录工具并不陌生. Java还具有功能强大且功能强 ...

随机推荐

  1. 本地mysql打不开的解决方法

    今天打开本地mysql的数据库,却一直打开报错.错误代码是10061. 让同事过来一看,发现是自己的mysql服务器并未启动.右下角任务管理器的mysql服务器为红色未启动状态.

  2. python之路十八

    1.JS 正则    test   - 判断字符串是否符合规定的正则        rep = /\d+/;        rep.test("asdfoiklfasdf89asdfasdf ...

  3. 没有我的A协

    我离开A协(北京林业大学ACM爱好者协会)有段时间了,严格算来,应该有4年了.现在协会里的大部分人我都不认识.A协在我离开之后的这段时间里也产生了翻天覆地的变化. A协已经不只是一个以竞赛培训为目的的 ...

  4. CorelDRAW各版本安装软件下载

    CorelDRAW X8 SP6-32位64位免激活免登陆版 百度网盘下载地址 提取密码:1z6w CorelDraw X7  (64位)  简体中文完整版: 百度网盘下载地址 提取密码:sqaw C ...

  5. ASP.NET中的chart控件绑定SQL Server数据库

    网上很多的chart控件的实例都没有绑定数据库,经过一番摸索后,终于实现了chart控件绑定数据库. 首先,在Visual Studio中建立一个网站,新建一个WebForm项目,名称为ChartTe ...

  6. APM的飞行模式

    1.稳定模式Stabilize 稳定模式是使用得最多的飞行模式,也是最基本的飞行模式,起飞和降落都应该使用此模式. 此模式下,飞控会让飞行器保持稳定,是初学者进行一般飞行的首选,也是FPV第一视角飞行 ...

  7. Java常用的技术网站

    学习Java,我会去的网站: 1.开源项目网站:https://github.com/和http://www.codeproject.com/,可以在这里搜索到别人上传的一些代码和项目 2.咨询问题的 ...

  8. STL string的构造函数

    前几天在网上,一位网友问我几个问题如下: , 'A'); string S1 = "abcdefg"; , ); ); cout << "s0 = " ...

  9. iOS-APP提交上架流程(新手必看!2016年3月1日最新版)

    自己的经验总结,有错的话请留言,第一时间更改. 先大概说一下iOSAPP上架的几个步骤(详细步骤见下图): 创建证书请求文件 登录苹果开发者中心生成发布者证书(下载下来要双击一下) 设置APPID(要 ...

  10. 如何清除Xcode8打印的系统日志

    Xcode升级成8之后,就会发现控制台打印的日志莫名其妙的变得超级多,最关键的是很多都是没有用的东西,而有些有用的东西却淹没在那无任何卵用的里面,在这我就说一下如何关掉这些没有用的日志. 1.直接快捷 ...