Logback_日志使用详解(转)
概述
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_日志使用详解(转)的更多相关文章
- lombok+slf4j+logback SLF4J和Logback日志框架详解
maven 包依赖 <dependency> <groupId>org.projectlombok</groupId> <artifactId>lomb ...
- IIS日志字段详解
IIS日志字段详解 抓住8月的尾巴,弥补下这个月的空白,事情太多,忘了写博客这回事了. IIS日志字段设置 网站运营时 ...
- 关于syslog日志功能详解 事件日志分析、EventLog Analyzer
关于syslog日志功能详解 事件日志分析.EventLog Analyzer 一.日志管理 保障网络安全 Windows系统日志分析 Syslog日志分析 应用程序日志分析 Windows终端服务器 ...
- MySQL日志功能详解
MySQL日志功能详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.查询日志 它是用来保存所有跟查询相关的日志,这种日志类型默认是关闭状态的,因为MySQL的用户有很多,如果 ...
- syslog之一:Linux syslog日志系统详解
目录: <syslog之一:Linux syslog日志系统详解> <syslog之二:syslog协议及rsyslog服务全解析> <syslog之三:建立Window ...
- SLF4J和Logback日志框架详解
SLF4J和Logback日志框架详解 作者:chszs,转载需注明.博客主页:http://blog.csdn.net/chszs 本文讲述SLF4J和Logback日志框架. SLF4J是一套 ...
- 项目log4j日志管理详解
项目log4j日志管理详解 log4j日志系统在项目中重要性在这里就不再累述,我们在平时使用时如果没有特定要求,只需在log4j.properties文件中顶入输出级别就行了.如果要自定义输出文件,对 ...
- GC日志分析详解
点击返回上层目录 原创声明:作者:Arnold.zhao 博客园地址:https://www.cnblogs.com/zh94 GC日志分析详解 以ParallelGC为例,YoungGC日志解释如下 ...
- Java中日志组件详解
avalon-logkit Java中日志组件详解 lanhy 发布于 2020-9-1 11:35 224浏览 0收藏 作为开发人员,我相信您对日志记录工具并不陌生. Java还具有功能强大且功能强 ...
随机推荐
- 异步select
server coding: #!/usr/bin/python # -*- coding: utf-8 -*- import select import socket import sys impo ...
- arm汇编指令
ARM处理器的指令集可以分为跳转指令.数据处理指令.程序状态寄存器(PSR)处理指令.加载/存储指令.协处理器指令和异常产生指令6大指令 一.跳转指令 跳转指令用于实现程序流程的跳转 跳转指令分类 Ⅰ ...
- 《转载》Java异常处理的10个最佳实践
本文转载自 ImportNew - 挖坑的张师傅 异常处理在编写健壮的 Java 应用中扮演着非常重要的角色.异常处理并不是功能性需求,它需要优雅地处理任何错误情况,比如资源不可用.非法的输入.nul ...
- appium 九宫格解锁招商银行手机客户端app
之前研究了一段时间的appium for native app 相应的总结如下: appium测试环境搭建 :ht ...
- day6
开发一个简单的python计算器 实现加减乘除及拓号优先级解析 用户输入 1 - 2 * ( (60-30 +(-40/5) * (9-2*5/3 + 7 /3*99/4*2998 +10 * 568 ...
- navicat 破解
首先上官网上下载LINUX版本: http://www.navicat.com/download 下载 navicat110_mysql_en.tar.gz 文件 下载后解压tar文件 tar -zx ...
- MySql触发器语法总结
经过昨天多次失败,今天终于将我要实现的触发器功能写成功了,触发器代码如下: -- use dbfortest; drop trigger if exists tg_before_insert_on_d ...
- json_decode返回NULL
最近在调用某公司的API时,将对方返回的数据,使用PHP的json_decode函数解析,但是返回NULL,最终排查为对方传送来的json格式有误 打印$_REQUEST,数据结构大致如下: arra ...
- 一个特殊情形的Mittag-Leffler分解
Mittag-Leffler分解定理的证明有多种,比如可以利用一维$\overline{\partial}$的解来构造相应的函数,还可以利用极点主部的Taylor多项式来进行修正使得$\sum(g_{ ...
- redis的安装及使用
Redis介绍: 1.redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API. 2.redis是一个key-value ...