【logback】认识logback
一. Reference:http://www.cnblogs.com/yongze103/archive/2012/05/05/2484753.html
1. Logback为取代log4j而生,logback当前分为三个模块:logback-core,logback-classic,logback-access. Simple Log Facade , slf4j.
2. Logback的核心对象:Logger, Appender, Layout,Logback主要建立于Logger, Appender 和Layout这三个类之上的。
Logger: 日志的记录器,把他关联到对应的context上后,主要用于存放日志对象,也可以定义日志类型,级别。Logger对象一般多定义为静态常量。
Appender:用于指定日志输出的目的地,目的地可以是控制台、文件、远程套接字服务器、mysql等。
Layout:负责把事件转换成字符串,格式化的日志信息的输出。具体的Layout通配符,可以直接查看帮助文档。
3. Level有效级别
Logger可以被分配级别。级别包括:trace, debug, info, warn和error, 定义于ch.qos.logback.classic.Level类。
4. 三值逻辑
Logback的过滤器基于三值逻辑(ternary logic),允许把他们组装或成链,从而组成任意的复合过滤策略。过滤器的返回值有三种:
deny:那么记录时间立即被抛弃,不再经过剩余过滤器;
neutral:那么有序列表里的下一个过滤器会接着处理记录事件;
accept:那么记录事件会被立即处理,不再经过剩余过滤器。
5. Filter过滤器
Logback-classic提供两种类型的过滤器:常规过滤器和TuroboFilter过滤器。logback整体流程:logger产生日志信息,layout修饰这条msg的显示格式,filter过滤显示的内容,appender具体的显示,即保存这日志信息的地方。
二. reference: logback.qos.ch/manual
1. An appender is a class that can be seen as an output destination. Appenders exist for many different destination including the console, files, syslog, tcp sockets, jms and many more. Users can also easily create their own Appenders as appropriate for their specific situation.
2. core, classic, access
classic extends core, implements the SLF4J API.
access integrates with Servlet containers to provide HTTP-access log functionality.
3. Every single logger is attached to a LoggerContext which is responsible for manufacturing loggers as well as arranging them in a tree like hierarchy.
4. The root logger resides at the top of the logger hierarchy.
5. To ensure that all loggers can eventually inherit a level, the root logger always has an assigned level. By default, this level is DEBUG.
6. Parameterized logging
6.1
logger.debug("Entry number: " + i + " is " + String.valueOf(entry[i]));
如果没有做判断,这logger中的字符串拼接会执行,但是当获取entry中第i个字符,并将其转换为字符串,并拼接成功之后,debug输出的这条语句未必显示,所以在这种语句之前最好判断一下:
if(logger.isDebugEnabled()) {
logger.debug("Entry number: " + i + " is " + String.valueOf(entry[i]));
}
6.2
logger.debug("The new entry is "+entry+".");
logger.debug("The new entry is {}.", entry);//在判断是否会被输出,并且将会被输出,之后才对被输出的参数进行处理
7. Logback依赖于一个配置库叫做:Joran,这个库位于Logback-core。
8. Logback通过StatusManager对象收集log内部的状态数据,这个StatusManager可以通过LoggerContext访问。
9. 每个Logger都依附于一个Logger Context。默认情况下,这个logger context叫做“default”。但是,我们可以通过<contextName> 来给context起一个名字,但是一旦名字被set,就不能更改。
【logback】认识logback的更多相关文章
- logback:logback和slf4j中的:appender、logger、encoder、layout
(1)appender 1.appender标签是logback配置文件中重要的组件之一.在logback配置文件中使用appender标签进行定义.可 以包含0个或多个appender标签. 2.a ...
- java日志框架之logback(一)——logback工程简介
Logback工程 致力于成为log4j工程的继承者 Logback的架构足够泛型化,故能够应用于许多不同的环境.当前,logback划分为三个组件: logback-core logback-cla ...
- logback配置文件---logback.xml详解
一.参考文档 1.官方文档 http://logback.qos.ch/documentation.html 2.博客文档 http://www.cnblogs.com/warking/p/57103 ...
- Logback配置连接
logback 简介 logback 常用配置详解(一)<configuration> and <logger> logback 常用配置详解(二)<appender&g ...
- 【转】logback logback.xml常用配置详解(三) <filter>
原创文章,转载请指明出处:http://aub.iteye.com/blog/1110008, 尊重他人即尊重自己 详细整理了logback常用配置, 不是官网手册的翻译版,而是使用总结,旨在更快更透 ...
- 【转】logback logback.xml常用配置详解(二)<appender>
原创文章,转载请指明出处:http://aub.iteye.com/blog/1101260, 尊重他人即尊重自己 详细整理了logback常用配置, 不是官网手册的翻译版,而是使用总结,旨在更快更透 ...
- 【转】logback logback.xml常用配置详解(一)<configuration> and <logger>
原创文章,转载请指明出处:http://aub.iteye.com/blog/1101260, 尊重他人即尊重自己 详细整理了logback常用配置, 不是官网手册的翻译版,而是使用总结,旨在更快更透 ...
- 【转】logback 常用配置详解(序)logback 简介
原创文章,转载请指明出处:http://aub.iteye.com/blog/1101222, 尊重他人即尊重自己 详细整理了logback常用配置, 不是官网手册的翻译版,而是使用总结,旨在更快更透 ...
- logback 配置
logback 配置 logback的配置方式包括:编程配置.XML文件配置.Groovy文件配置.对于使用log4j的用户,还可以通过logback提供的工具( http://logback.qos ...
- logback 详解
原创文章,转载请指明出处:http://aub.iteye.com/blog/1103685, 尊重他人即尊重自己 详细整理了logback常用配置, 不是官网手册的翻译版,而是使用总结,旨在更快更透 ...
随机推荐
- S2:外观模式 Facade
为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用. 什么时候使用:1,开发阶段,子系统越来越复杂,增加外观模式提供一个简单的调用接口.2,维护一个大 ...
- Linux下的非阻塞IO(一)
非阻塞IO是相对于传统的阻塞IO而言的. 我们首先需要搞清楚,什么是阻塞IO.APUE指出,系统调用分为两类,低速系统调用和其他,其中低速系统调用是可能会使进程永远阻塞的一类系统调用.但是与磁盘IO有 ...
- react 打包后,项目部署完毕,刷新页面报错(404)
原因解析: 之所以你在浏览器内可以由首页跳转到其他路由地址,是因为这是由前端自行渲染的,你在React Router定义了对应的路由,脚本并没有刷新网页访问后台,是JS动态更改了location. 当 ...
- 监听EditText字数
editContent.addTextChangedListener(new TextWatcher() { private CharSequence temp;private int editSta ...
- 零基础学python-1.5 第一个程序
这一个章节我们来说说怎么建立一个python程序 1.打开idle 2.点击File->new file,然后会弹出一个编辑窗体 3.在编辑窗体里面输入命令代码 程序代码: print(&quo ...
- Unity3d 实现鼠标左键点击地形使角色移动到指定地点[脚本]
Unity3d 实现鼠标左键点击地形使角色移动到指定地点[脚本] 2013-02-19 15:29:33 我来说两句 作者:nnsword 收藏 我要投稿 其中涉及,移动速度, ...
- python在windows系统中打印中文乱码
转自:http://www.111cn.net/phper/python/58920.htm 中文乱码对于程序开发人员来讲不是什么怪事情了,今天我在使用python打印中文时就出现乱码了,下面我们一起 ...
- go的url解析
对于解析url,是一个常见的场景,下面就来说这个,直接见代码: package main import ( "fmt" "net/url" "stri ...
- 向MapReduce转换:通过部分成绩计算矩阵乘法
代码共分为四部分: <strong><span style="font-size:18px;">/*** * @author YangXin * @info ...
- Oracle Data Provider for .NET的使用(二)-驱动更换与注意事项
上篇说过了ODP的安装与配置 ,但是个人比较喜欢托管类型的,毕竟非托管类型的,因为考虑到会有用户或者是服务器或者是开发人员有32位的机器,就要强制编译平台平台为32位,只因为这个驱动,有点让人不愉快了 ...