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());
}
相关文章
- nginx之日志设置详解
- MySQL slow_query_log慢查询日志配置详解
- mysql日志文件开启及详解:General_log 和 Binlog
- 为什么说JAVA中要慎重使用继承 C# 语言历史版本特性(C# 1.0到C# 8.0汇总) SQL Server事务 事务日志 SQL Server 锁详解 软件架构之 23种设计模式 Oracle与Sqlserver:Order by NULL值介绍 asp.net MVC漏油配置总结
- Elasticsearch 日志配置详解
- 134 日志监控告警系统案例(功能架构分析)
- 数据库审计和日志审计的三大区别分析
- linux journalctl日志分析详解
- go logrus包最好的日志管理详解
- Postgresql的日志配置教程详解
- MySQL日志详解(上篇)
- Android日志系统Logcat源代码简要分析
- zookeeper清除事物日志
- ELK+kafka构建日志收集系统
- springboot的日志框架slf4j (使用logback输出日志以及使用)
- Java学习-007-Log4J 日志记录配置文件详解及实例源代码
- 《日志管理与分析权威指南》一1.1 概述
- 《日志管理与分析权威指南》一2.2.3 日志内容
- 《日志管理与分析权威指南》一3.2 日志来源
- 一文看懂ELK日志查看安装配置(超详细)
- MySQL bin-log 日志清理方式
- 审计文件的作用以及记录的内容,审计日志的记录,以及审计日志包括的内容
- (4.7)mysql备份还原——深入解析二进制日志(3)binlog的三种日志记录模式详解
- sql server收缩数据库,收缩日志文件与数据文件
- 快速搭建ELK日志分析系统
- nginx 日志详解及自定义日志配置
- JAVA日志技术 & Logback