
Java日志系统
文章平均质量分 84
JVM日志系统和slf4j+logback日志系统。
自由与束缚JavaJavaScript
这个作者很懒,什么都没留下…
展开
-
010-映射诊断环境
1. : 过滤器,执行一个过滤器会有返回个枚举值,即DENY,NEUTRAL,ACCEPT其中之一。(1). 返回DENY,日志将立即被抛弃不再经过其他过滤器;(2). 返回NEUTRAL,有序列表里的下个过滤器过接着处理日志;(3). 返回ACCEPT,日志会被立即处理,不再经过剩余过滤器。(4). 过滤器被添加到中,为添加一个或多个过滤器后,可以用任意条件对日志进行过滤。有多个原创 2017-09-05 18:46:09 · 396 阅读 · 0 评论 -
009-Joran配置框架
1. 设置(1). 用来设置某一个包或者具体的某一个类的日志打印级别、以及指定。有一个name属性,一个可选的level和一个可选的addtivity属性。(2). name: 用来指定受此logger约束的某一个包或者具体的某一个类。(3). level: 用来设置打印级别, 大小写无关:TRACE,DEBUG,INFO,WARN,ERROR,ALL和OFF,还有一个特俗值INHER原创 2017-09-05 12:35:36 · 2303 阅读 · 0 评论 -
017_layout排版
1. configuration的appender,logger,root三个子节点2. appender(1). 是的子节点,是负责写日志的组件。(2). 有两个必要属性name和class。name指定appender名称,class指定appender的全限定名。3. ConsoleAppender把日志添加到控制台,有以下子节点:(1). : 对日志进行原创 2017-09-05 11:59:36 · 600 阅读 · 0 评论 -
016_logback中的Encoder
1. 什么是encoder?1.1. Encoder负责两件事, 一是把事件转换为字节数组, 二是把字节数组写入输出流。在logback 0.9.19版之前没有encoder。在之前的版本里, 多数appender依靠layout来把事件转换成字符串并用java.io.Writer把字符串输出。在之前的版本里, 用户需要在FileAppender里嵌入一个PatternLayout。而从0.9.19版开始, FileAppender和其子类使用encoder, 不接受layout。2. 为什么变了.原创 2021-03-19 22:22:04 · 1149 阅读 · 0 评论 -
015_logback中的自定义Appender
1. 继承AppenderBase就可以轻松地写自己的appender。AppenderBase处理过滤器、状态信息和大多数appender共享的其他功能。派生类只需要实现一个append(ObjecteventObject)方法。2. 例子2.1. 新建一个名为MyselfAppend的Java项目, 同时添加相关jar包2.2. 在src目录下, 新建logback.xml<configuration> <appender name="stdout" cl原创 2021-05-03 22:20:56 · 1824 阅读 · 1 评论 -
014_logback中的SiftingAppender
1. 如其名, SiftingAppender能按照给定的运行时属性, 对记录进行分离或筛选。例如, SiftingAppender能根据用户会话对记录事件进行分离, 这样, 每个用户生成的记录会进入不同的记录文件, 一个用户一个文件。2. SiftingAppender内置并且管理多个appender, 这些appender是按照区别值(discriminating value)而动态构建的。在配置文件里的SiftingAppender定义的内部, 指定构建好的appender。默认情况下, Sift原创 2021-05-03 17:32:42 · 2305 阅读 · 2 评论 -
013_logback中的SyslogAppender
1. syslog协议很简单: syslog发送者发送一小段信息到syslog服务器。接收者一般称为"syslog守护进程"或"syslog服务器"。Logback能向远程syslog守护进程发送消息。实现办法是SyslogAppender。2. 下面是SyslogAppender的属性3. 记录事件在syslog里的严重程度是从记录事件的级别转换而来的。DEBUG级别转换为7, INFO是6, WRAN是4, ERROR是3。4. 由于syslog请求的格式遵循相当严格的规则, 所以Sys原创 2021-05-03 16:47:08 · 3332 阅读 · 0 评论 -
012_logback中的DBAppender
1. DBAppender把记录事件写入数据库的三张表。三张表分别是logging_event、logging_event_property和logging_event_exception。在使用DBAppender之前, 这三张表必须已经被创建。Logback提供创建这些表的SQL脚本, 位于logback-classic/src/main/java/ch/qos/logback/classic/db/script目录, 对各个流行数据库分别有一个脚本。如果没有你想用的数据库的脚本, 那就按照现有的脚本自原创 2021-03-21 22:46:53 · 1190 阅读 · 0 评论 -
011_logback中的SMTPAppender
1. SMTPAppender在固定大小的缓冲里积累记录时间, 当用户指定的事件发生后, 就通过email发出这些事件。默认情况下, email发送是由级别为ERROR或更高级别的记录事件触发的。2. SMTPAppender的属性如下3. SMTPAppender依赖JavaMail API, 在JavaMail API 1.4版下通过测试(高版本的JavaMail暂时不支持)。4. 事件的触发4.1.如果未指定选项"Evaluator", 则SMTPAppender被默认分配一个..原创 2021-03-21 12:35:27 · 1415 阅读 · 3 评论 -
010_logback中的SocketAppender
1. SocketAppender被设计为通过序列化ILoggingEvent实例把记录输出到远程实体。被序列化的事件的真实类型是LoggingEventVO, 它实现了ILoggingEvent接口。尽管如此, 就记录事件而言, 远程记录仍然是无损的。在接收和反序列化后, 事件像是从本地产生的一样被记录。运行在不同机器上的多个SocketAppender实例可以把各自的记录输出到一个格式固定的中央记录服务器。2. SocketAppender不关联layout, 因为它把序列化的事件发送到远程服务器。原创 2021-03-21 11:50:22 · 1600 阅读 · 1 评论 -
009_logback本地Appender
一. Appender接口1. 什么是Appender?1.1. Appender是负责写记录事件的组件。Appender必须实现接口"ch.qos.logback.core.Appender"。2. Appender接口的重要方法3. Appender接口里的多数方法都是getter和setting。值得注意的是doAppend()方法, 它唯一的参数是类型E的对象。类型E的实际类型视logback模块的不同而不同。在logback-classic模块里, E可能是"ILoggingE原创 2021-03-21 11:27:38 · 514 阅读 · 0 评论 -
008_logback配置语法
1. 根节点包含的属性:(1). scan: 当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true。(2). scanPeriod: 设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。(3). debug: 当此属性设置为true时,将打印出logback内部日志信息,实时原创 2017-09-04 17:47:13 · 568 阅读 · 0 评论 -
007_logback配置
1. Logback采取下面的步骤进行自我配置1.1. 尝试在classpath下查找文件logback-test.xml;1.2. 尝试在classpath下查找文件logback.groovy;1.3. 如果文件不存在, 则查找文件logback.xml;1.4. 如果两个文件都不存在, logback用BasicConfigurator自动对自己进行配置, 这会导致记录输出到控制台。最后一步是为了在缺少配置文件时提供默认(但基本的)记录功能。2. 自动配置 2.1. 假设配置.原创 2021-03-18 10:21:05 · 244 阅读 · 0 评论 -
006_logback体系结构
1. 获取Logger1.1. 用同一名字调用LoggerFactory.getLogger方法所得到的永远都是同一个logger对象的引用。1.2. x和y指向同一个logger对象。Logger x = LoggerFactory.getLogger("wombat"); Logger y = LoggerFactory.getLogger("wombat"); 1.3. Logback简化了logger命名, 方法是在每个类里初始化logger, 以类的全限定名作为logger名。原创 2021-03-16 17:35:09 · 215 阅读 · 0 评论 -
005_logback介绍
1. 什么是logback 1.1. Logback由log4j的创立者创始人设计的又一个开源日志组件。以十多年设计工业级记录系统的经验为基础, 所创建的logback比现有任何记录系统更快、占用资源更少, 有时差距非常大。1.2. Logback提供独特而实用的特性, 比如: Marker、参数化记录语句、条件化堆栈跟踪和强大的事件过滤功能。以上列出的仅仅是logbook实用特性的一小部分。1.3. 对于自身的错误报告, logback依赖状态(Status)对象, 状态对象极大地简化了故障查原创 2021-03-11 22:40:32 · 323 阅读 · 0 评论 -
004-SLF4J的简单使用
1. SLF4J介绍SLF4J(Simple Logging Facade for Java)简单的java日志门面, 它是各种日志框架的抽象服务(例如: logback, log4j, java.util.logging), 它允许使用者以插件的形式设计自己的日志框架.2. SLF4J官网链接https://www.slf4j.org/index.html3. 下原创 2017-09-03 18:19:26 · 429 阅读 · 0 评论 -
003_commons-logging与slf4j和log4j与logback
1. 日志接口常用的有commons-logging和slf4j, 日志实现常用的有log4j和logback。那么, 我们应该选取什么样的组合呢?2. Logback是由log4j创始人设计的又一个开源日志组件。logback当前分成三个模块: logback-core, logback- classic和logback-access。logback-core是其它两个模块的基础模块。logback-classic是log4j的一个改良版本。此外logback-classic完整实现slf4j api原创 2021-03-11 18:13:58 · 311 阅读 · 0 评论 -
002_Java日志
1.首先八卦一下这个日志家族的成员,下面这张图虽然没有包含全部的内容,但是基本也涵盖了日志系统的基本内容,不管怎么说,先记住下面这张图:2.通过上面的图,可以简单的理清关系!(1). commons-logging和slf4j都是日志的接口,供用户使用,而没有提供实现!(2). log4j,logback等等才是日志的真正实现。(3). 当我们调用接口时,接口的工厂会自动寻找恰原创 2017-09-03 17:21:27 · 344 阅读 · 0 评论 -
001_日志系统的架构模型
1. 创建Logger对象(1). public static Logger getLogger(String name)为指定子系统查找或创建一个 logger。如果已经创建了具有给定名称的 logger,则返回该 logger。否则创建一个新的 logger。2. Logger的级别(1). 全部定义在java.util.logging.Level里面。(2). 各原创 2017-09-03 14:27:46 · 271 阅读 · 0 评论