logback使用笔记

三大主要元素

looger:记录日志

appender:输出目的地

layout:输出格式

必要步骤:

一.引入包:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

二.获取Logger实例

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

PS.Logback不限制logger名,你可以随意命名logger。然而,目前已知最好的策略是以logger所在类的名字作为logger名称。

三.调用方法

logger.debug("Hello logback");

关于配置:

Logback可以通过编程式配置,或用XML格式的配置文件进行配置。
Logback采取下面的步骤进行自我配置:
1. 尝试在classpath下查找文件logback-test.xml;
2. 如果文件不存在,则查找文件logback.xml;
3. 如果两个文件都不存在,logback用BasicConfigurator自动对自己进行配置,这会导致记录输出到控制台。
第三步也是最后一步是为了在缺少配置文件时提供默认(但基本的)记录功能。

配置文件:

以<configuration>开头,后面有零个或多个<appender>元素,有零个或多个<logger>元素,有最多一个<root>元素。

<logger>节点:因为每个用<logger>元素声明的logger,首先会移除所有appender,所以如果logger没有引用任何appender,就会失去所有appender。这也是在配置文件里配置logger的用途之一,用于主动声明level或者屏蔽appender。注意,<logger>节点里配置的日志是不会受<root>节点的level影响的。

<logger>节点:由于appender的累加性,<logger>节点里所有的内容会再输出到它的祖先<root>里一遍,可以设置additivity参数关闭它。

Appender:

class属性指定appender类的全限定名,包括但不限于以下几种:

“ConsoleAppender”:把事件添加到控制台,更准确地说是System.out或System.err,默认为前者。

“FileAppender”:把记录事件添加到文件。目标文件通过File选项指定。如果文件已经存在,则根据Append属性追加或清空文件。

“RollingFileAppender”:继承FileAppender,能够滚动记录文件。例能先记录到某个文件当符合某个条件时,变成记录到其他文件。

“SocketAppender”:通过序列化ILoggingEvent实例把记录输出到远程实体。

“JMSAppenderBase”:与SocketAppender类似,只是基于JMS API而不是TCP套接字。JMS即Java消息系统API为面向消息的中间件(MOM)产品提供抽象层。

“SMTPAppender”:在固定大小的缓冲里积累记录时间,当用户指定的事件发生后,就通过email发出这些事件。

“DBAppender”:DBAppender把记录事件写入数据库的三张表。

“SyslogAppender”:syslog协议很简单:syslog发送者发送一小段信息到syslog服务器。

“SiftingAppender”:SiftingAppender能按照给定的运行时属性,对记录进行分离或筛选。能根据用户会话对记录事件进行分离,一个用户一个文件。

“自定义Appender”:自定义

基本概念:

Appender:Appender类可被视为输出目的地的。Appender包含许多不同类型的目的地,包括控制台、文件、Syslog、TCP套接字、JMS和其他。

有效级别:trace<debug<info<warn<error

Appender叠加性:记录语句的输出会发送给logger及其祖先的全部appender。设置logger的additivity为false,则可以取消这种默认的appender累积行为。

过滤器(Filter):Logback的过滤器基于三值逻辑(ternary logic),允许把它们组装或成链,从而组成任意的复合过滤策略。

常用方法:

StatusPrinter.pring():打印logback的内部状态。在诊断与logback相关的问题时,logback的内部状态信息会非常有用。

logger.isDebugEnabled():当logger的debug级别被禁用时,这个方法可以避免参数构造带来的性能消耗。另外,利用SLF4J的参数化记录可以避免这种消耗。 x.debug("Entry number: {} is {}", i, entry[i])。

三大模块:

logback-core:是其他两个模块的基础

logback-classic:扩展了core模块,此模块相当于log4j的显著改进版。直接实现了SLF4J API,因此你可在logback与其他记录系统如log4j之间轻松互相切换。

logback-access:此模块可与Jetty或者Tomcat进行集成,提供了非常丰富而强大的通过HTTP访问日志的功能。

logbakc的迁移:由于 logback-classic强烈建议使用SLF4J作为客户端日记系统实现,如果需要切换到log4j或者其他,你只需要替换一个jar包即可,不需要去改变那些通过SLF4J API 实现的代码。这可以大大减少更换日记系统的工作量。

关于日志的一些总结:

1.使用日志框架管理应用日志的好处:方便对日志进行管理,快速进行问题定位,应用日志可以根据功能划分多个,定义不同的日志级别。

2.启动日志和应用日志的区别:启动日志一般指像jboss这种应用容器自带的日志(jboss_stdout.log),里面的记录就像本地eclipse控制台里的那些打印,有应用从开始到结束的所有记录。而应用日志则是记录应用运行过程中的行为,由日志框架所控制,多为程序员主动记录的,所以更有针对性内容也更丰富。

时间: 2024-08-17 20:11:15

logback使用笔记的相关文章

Logback 学习笔记

来源:http://webinglin.github.io/2015/06/04/Logback-%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/ Logback背景 Logback是一个开源的日志组件,是log4j的作者开发的用来替代log4j的. logback由三个部分组成,logback-core, logback-classic, logback-access.其中logback-core是其他两个模块的基础. slf4j 定义日志接口及基本实现,而具体的实现

logback的使用笔记

关于日志存储数据库方面的没有整理,暂时用不到,异步看了英文文档,发现暂时用不到,以后再整理 2017-04-09 00:57:26 logback是一个开源的日志组件,是log4j的作者开发的用来替代log4j的. logback由三个部分组成,logback-core, logback-classic, logback-access.其中logback-core是其他两个模块的基础. logback中三个重要概念: Logger,Appender,Layout Logger: 日志记录器,把它

阅读Logback文档笔记--Logback的Configuration配置

要在项目中引入日志,需要一定的代价,据统计日志代码量将会占整个代码量的4%左右.因此我们需要一个工具管理这些日志声明. 对于Log4j.properties可以通过以下网址转化成logback.xml http://logback.qos.ch/translator/ Logback如何查找配置文件: 在classpath中查找logback.groovy 如果不存在,则在classpath中查找logback-test.xml 如果不存在,继续查找logback.xml 如果不存在,则由jdk

Spring MVC整合logback日志框架实战

1.引入依赖,本项目maven构建,普通项目导入想要的jar包即可 版本 <properties> <slf4j-api.version>1.7.7</slf4j-api.version> <logback.version>1.1.3</logback.version> </properties> 依赖包 <dependency> <groupId>ch.qos.logback</groupId>

Docker 学习笔记【3】 Docker 仓库、数据卷、数据卷容器,网络基础实操。高级网络配置学习

Docker 学习笔记[4] 高级网络配置实操,实战案例实验 =========================================================================== Docker 学习笔记[2] Docker 仓库实操,创建私有仓库,实操数据卷.数据卷容器,记录开始 =========================================================================== 被格式化的脚本内容: #开头代表

Log4j,Log4j2,logback,slf4j日志学习

日志学习笔记 Log4j Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台.文件.数据库等:我们也可以控制每一条日志的输出格式:通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程. Log4j有7种不同的log级别,按照等级从低到高依次为:TRACE.DEBUG.INFO.WARN.ERROR.FATAL.OFF.如果配置为OFF级别,表示关闭log. Log4j支持两种格式的配置文件:properties和xml.包含三

Spring3.0官网文档学习笔记(二)

1.3 使用场景 典型的成熟的spring web应用 spring使用第三方框架作为中间层 远程使用场景 EJB包装 1.3.1 依赖管理.命名规则(包) spring-*.jar *号代表的是模块的简写,如:spring-core, spring-webmvc, spring-jms 可以在四个不同的地方找到Spring: http://www.springsource.org/downloads/community  所有的jar包被打包成zip,名称从3.0开始是: org.spring

&#128293;SpringBoot图文教程2—日志的使用「logback」「log4j」

有天上飞的概念,就要有落地的实现 概念+代码实现是本文的特点,教程将涵盖完整的图文教程,代码案例 文章结尾配套自测面试题,学完技术自我测试更扎实 概念十遍不如代码一遍,朋友,希望你把文中所有的代码案例都敲一遍 大哥大姐新年好,点赞转发不要少 SpringBoot 图文系列教程技术大纲 简单说明,教程分为基础篇,进阶篇和高级篇 基础篇,本章力求简单快速的掌握基本的SpringBoot使用,并应用到项目中 进阶篇,学会SpringBoot更多的常见用法以及底层原理 高级篇,着重介绍SpringBoo

【安全牛学习笔记】

弱点扫描 ╋━━━━━━━━━━━━━━━━━━━━╋ ┃发现弱点                                ┃ ┃发现漏洞                                ┃ ┃  基于端口五福扫描结果版本信息(速度慢)┃ ┃  搜索已公开的漏洞数据库(数量大)      ┃ ┃  使用弱点扫描器实现漏洞管理            ┃ ╋━━━━━━━━━━━━━━━━━━━━╋ [email protected]:~# searchsploit Usage: