![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
日志那点事
文章平均质量分 86
LinkinPark8林肯
博客迁移,请移步jiangweili.me
展开
-
slf4j--源码解析
日志框架研究的不算少了,这里转载一篇上善若水的关于slf4j的源码解析。原文出处:http://www.blogjava.net/DLevin/archive/2012/11/08/390991.html。感谢作者的分享。Commons Logging+Log4J一直是Java日志的经典组合,以至于很多服务器都使用了类似的配置,像WebSphere、以前的Tomcat都使用Comm转载 2016-03-01 12:00:39 · 891 阅读 · 0 评论 -
Log4j源码解析--核心类解析
原文出处:http://www.blogjava.net/DLevin/archive/2012/06/28/381667.html。感谢上善若水的无私分享。在简单的介绍了Log4J各个模块类的作用后,以下将详细的介绍各个模块的具体作用以及代码实现。Logger类Logger是对记录日志动作的抽象,它提供了记录不同级别日志的接口,日志信息可以包含异常信息也可以不包含转载 2016-02-25 13:58:46 · 1328 阅读 · 0 评论 -
Log4j源码解析--Layout类解析
本文转载上善若水的博客,原文出处:http://www.blogjava.net/DLevin/archive/2012/07/04/382131.html。感谢作者的分享。Layout负责将LoggingEvent中的信息格式化成一行日志信息。对不同格式的日志可能还需要提供头和尾等信息。另外有些Layout不会处理异常信息,此时ignoresThrowable()方法返回false,转载 2016-02-25 15:13:27 · 1026 阅读 · 0 评论 -
Log4j源码解析--Appender接口解析
本文转自上善若水的博客,原文出处:http://www.blogjava.net/DLevin/archive/2012/07/10/382676.html。感谢作者的无私的分享。Appender负责定义日志输出的目的地,它可以是控制台(ConsoleAppender)、文件(FileAppender)、JMS服务器(JmsLogAppender)、以Email的形式发送出去(SMTPAp转载 2016-02-25 15:26:56 · 2213 阅读 · 0 评论 -
Log4j扩展使用--输出地Appender
OK,现在我们来研究输出低Appended。Appender控制日志输出的位置Log4j日志系统允许把日志输出到不同的地方,如控制台(Console)、文件(Files)、根据天数或者文件大小产生新的文件、以流的形式发送到其它地方等等。Log4j内置了常用的输出地,一般情况下配置一下即可使用,所有的Appender都实现了自org.apache.log4j.Appender原创 2016-02-23 01:00:01 · 10799 阅读 · 0 评论 -
Log4j扩展使用--日志格式化器Layout
Layout:格式化输出日志信息OK,前面我已经知道了。Appender必须使用一个与之相关联的Layout,这样才能知道怎样格式化输出日志信息。日志格式化器Layout负责格式化日志信息,方法log.error()的参数只包含日志信息,利用Layout可以附加其他信息,以输出更多的信息或者布局显示。Log4j具有几种类型的LayoutPatternLayout:根原创 2016-02-23 01:02:08 · 13760 阅读 · 0 评论 -
Log4j源码解析--LoggerRepository和Configurator解析
本文转自上善若水的博客,原文出处:http://www.blogjava.net/DLevin/archive/2012/07/10/382678.html。感谢作者的无私分享。LoggerRepository从字面上理解,它是一个Logger的容器,它会创建并缓存Logger实例,从而具有相同名字的Logger实例不会多次创建,以提高性能。它的这种特性有点类似Spring的IOC概念。L转载 2016-02-25 16:13:39 · 920 阅读 · 0 评论 -
Log4j扩展使用--自定义输出
写在前面的话log4j支持自定义的输出。所有的输出都实现了自Appender接口。一般来说,自定义输出值需要继承AppenderSkeleton类,并实现几个方法就可以了。写这篇博客,我主要也是想说,框架之所有被成为是一个框架,是在帮我们完成大部分的通用代码,这就有一个前提就是说它必须要有具有良好的扩张性。方便每一个使用者来扩展,当然我们也可以根据自己的喜好去改人家框架的源码,但是原创 2016-02-25 23:30:16 · 4715 阅读 · 0 评论 -
commons-logging的使用
简介commons-logging是Apache commons类库中的一员。Apache commons类库是一个通用的类库,提供了基础的功能,比如说commons-fileupload,commons-httpclient,commons-io,commons-codes等。commons-logging能够选择使用Log4j还是JDK Logging,但是他不依赖Log4j,JD原创 2016-02-26 11:00:45 · 34982 阅读 · 1 评论 -
common-logging--源码之SimpleLog
common-logging源码Log接口在common-logging的源码中,将log核心类抽象成了一个Log接口。这里贴出Log接口的源码:/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NO原创 2016-02-26 13:42:38 · 1026 阅读 · 0 评论 -
common-logging源码解析
OK,现在我们来研究下common-logging的源码。这篇博客有参照上善若水的博客,感谢他的无私分享。先来随便扯点吧,貌似所有这些流行的Logging框架都和Log4J多少有点关系(不太确定Commons Logging有多大关系,不过至少也都是Apache下的项目吧)。JDK Logging据说当初是想用Log4J的,但是当时两家好像谈判谈崩了,然后JDK自己实现了一个,貌似结构和Log原创 2016-02-26 14:56:11 · 2950 阅读 · 0 评论 -
Logback使用
OK,现在让我们开始logback吧。关于logback的使用,网上的资料良莠不齐,权威一点的材料比如书我是没有找到。所以只好去官网上看文档,本人英语一般,所以只能一边翻译,一边研究。这里来整理一份相对比较详细的博客。logback概述LogBack是由log4j的创始人开发的一个日志组件,用于替代log4j。LogBack的架构设计足够通用,可适用于不同的环境,目原创 2016-02-29 20:04:15 · 629 阅读 · 0 评论 -
Logback配置
OK,现在我们整理Logback的配置。关于Logback的使用比较简单,和使用log4j也没什么太大区别,这里就不做赘述了。这里先来贴出一份完整的logback.xml的配置文件,以后如果用到相关配置直接这里复制就好了。 Application --> %d{HH:mm:ss.SSS} [%thread] %-5level原创 2016-03-01 01:35:57 · 1846 阅读 · 0 评论 -
logback配置详解
前面我自己整理的一篇博客,关于logback的配置详解其实整理的已经很详细了,这里在转载一篇别人的不错的文章。原文出处:http://blog.csdn.net/haidage/article/details/6794540。感谢作者的无私分享,虽然他是转载的,我晕。一:根节点包含的属性: scan:当此属性设置为true时,配置文件如果发生改变转载 2016-03-01 01:42:36 · 1555 阅读 · 0 评论 -
Log4j源码解析--框架流程+核心解析
OK,现在我们来研究Log4j的源码:这篇博客有参照上善若水的博客,原文出处:http://www.blogjava.net/DLevin/archive/2012/06/28/381667.html。感谢作者的无私分享。Log4J将写日志功能抽象成七个核心类或者接口:Logger、LoggerRepository、Level、LoggingEvent、Appender、Layou原创 2016-02-25 13:31:40 · 15489 阅读 · 0 评论 -
自己写的日志框架--linkinLog4j--框架可配置+提性能
OK,上一篇博客我们已经实现了日志框架的基本的功能,但是还有一个最大的问题就是日志输出地不能重定向,然后一些输出也不可控。那现在我们来实现一个比较完整的日志框架。设计思路如下:1,定义一堆常量LinkinLog4jConstants,这些常量用于框架中日志输出的配置项,为了简单和方便,这里不一定非要依赖配置文件,所以在这些常量里面都要付初始值。2,新增配置文件,LinkinLo原创 2016-02-25 10:24:31 · 752 阅读 · 0 评论 -
slf4j的使用
OK,现在我们来使用slf4j。概念SLF4J,即简单日志门面(Simple Logging Facade for Java),不是具体的日志解决方案,它只服务于各种各样的日志系统。按照官方的说法,SLF4J是一个用于日志系统的简单Facade,允许最终用户在部署其应用时使用其所希望的日志系统。实际上,SLF4J所提供的核心API是一些接口以及一个LoggerFacto原创 2016-03-01 14:32:52 · 15268 阅读 · 3 评论 -
slf4j源码解析
OK,现在我们来研究slf4j的源码。前面我转载了一篇上善若水的博客,其实里面已经写的很详细了。没看过slf4j的源码之前我只是大致的了解了slf的执行,看过源码以后不得不惊叹大师的设计,所以这里自己也认真的来整理一遍。slf4j源码目录结构首先,我们从githud上下载slf4j的源码到本地,这个源码用maven管理的,是一个多项目的框架,原来的目录结构如下: ok,这里好多的子原创 2016-03-02 22:48:50 · 5591 阅读 · 1 评论 -
从Log4j迁移到LogBack的理由
OK,现在也已经把所有常用的日志框架都整理完了,在开源中国上看见一个关于迁移Log4j到Logback的文章,觉得写的不错,所以这里转载过来。原文出处:http://www.oschina.net/translate/reasons-to-prefer-logbak-over-log4j。感谢作者的翻译,我晕。无论从设计上还是实现上,Logback相对log转载 2016-03-02 23:03:58 · 947 阅读 · 0 评论 -
web应用中log4j应用--log4j.xml同时输出多种日志
OK,现在我们来整理下log4j来web项目中的应用。我之前搞了2年web,使用的日志都是log4j。关于现在比较火的logback我后面会有博客整理到,不管怎么样,这里先整理一下web中log4j的使用,特别是log4j.xml,之后如果用到直接过来复制就好了。1,项目中添加log4j依赖: log4j log4j 1.2.17 当然这里推荐使用slf4j来统一管理原创 2016-02-23 01:04:03 · 3550 阅读 · 0 评论 -
Java日志管理最佳实践
原文出处:http://www.ibm.com/developerworks/cn/java/j-lo-practicelog/。感谢原作者,感谢ibm网站,里面有好多的精华帖。日志记录是应用程序运行中必不可少的一部分。具有良好格式和完备信息的日志记录可以在程序出现问题时帮助开发人员迅速地定位错误的根源。对于开发人员来说,在程序中使用日志API记录日志并不复杂,不过遵循转载 2016-03-02 23:10:53 · 7292 阅读 · 1 评论 -
Java程序员最常用的8个Java日志框架
作为一名Java程序员,我们开发了很多Java应用程序,包括桌面应用、WEB应用以及移动应用。然而日志系统是一个成熟Java应用所必不可少的,在开发和调试阶段,日志可以帮助我们更好更快地定位bug;在运行维护阶段,日志系统又可以帮我们记录大部分的异常信息,从而帮助我们更好的完善系统。本文要来分享一些Java程序员最常用的Java日志框架组件。1、log4j – 最受欢迎的Java日志组件转载 2016-02-22 15:05:43 · 825 阅读 · 0 评论 -
java日志概述和原理
OK,现在我们来研究下Java相关的日志。日志记录是应用程序运行中必不可少的一部分。具有良好格式和完备信息的日志记录可以在程序出现问题时帮助开发人员迅速地定位错误的根源。对于开发人员来说,在程序中使用日志API记录日志并不复杂,不过遵循一些最佳实践可以更好的利用日志。本系列介绍了在Java程序中记录日志的最佳实践,同时也介绍了如何使用开源软件对日志进行聚合和分析。对于现在的应用程序原创 2016-02-22 15:36:57 · 1731 阅读 · 0 评论 -
JDK自带的日志Logging
OK,现在我们来研究下JDK自带的日志Logger。从jdk1.4起,JDK开始自带一套日志系统。JDK Logger最大的优点就是不需要任何类库的支持,只要有Java的运行环境就可以使用。相对于其他的日志空间,JDK自带的日志可谓是鸡肋,无论易用性,功能还是扩展性都要稍逊一筹,所以在商业系统中很好直接使用。我们现在整理到日志系列了,所以这里只是做一个简单的介绍就好了,比较实际原创 2016-02-22 16:36:19 · 11247 阅读 · 0 评论 -
Log4j的使用
OK,现在我们开始研究Log4j。Log4j是目前应用最广泛的日志空间,它分如下几个日志级别,日志级别依次升高。级别高的level会屏蔽级别低的信息。TRACE→DEBUG→INFO→WARNING→ERROR→FATAL→OFF。比如设置INFO级别,TRACE,DEBUG就不会输出,如果设置WARNING级别,则TRACE,DEBUG,INFO都不会输出。Log4j原创 2016-02-22 23:42:48 · 8204 阅读 · 0 评论 -
Log4j扩展使用--日志记录器Logger
OK,现在我们认真的研究下Logger的配置,进行相关配置扩展。Log4j有三个主要的组件:Loggers(记录器),Appenders(输出源)和Layouts(布局)。其中,Logger负责记录日志,Appender负责输出到什么地方,Layout负责以什么格式输出,输出哪些附加信息等。综合使用这三个组件可以轻松的记录信息的类型和级别,并可以在运行时控制日志输出的样式和位置。原创 2016-02-23 00:47:02 · 7924 阅读 · 1 评论 -
自己写的日志框架--linkinLog4j--日志框架的必要性
OK,在开始研究Log4j的源码之前,我们先来自己模拟一个日志工具,名字就叫linkinlog4j好了。在软件开发过程中,出现bug总是在所难免;事实上,以我个人经验,即使在实际开发阶段,fix bug时间要远超过写代码的时间。在开发阶段,比较有效的fix bug的方法当然是调试,然而如果代码比较复杂,而且开始对代码不是很熟悉,那么我们很容易在方法调用之间迷失方向;如果bug出现在多线程环境中原创 2016-02-24 09:59:57 · 998 阅读 · 0 评论 -
自己写的日志框架--linkinLog4j--实现基本的框架功能
OK,上面一步我们已经知道了日志框架的必要性,然后我们也对比了直接不用日志框架来记录日志的种种弊端。现在我们开始就来一步一步的实现自己的日志框架。大体的思路如下:1,实现多种日志级别,通过设值不同的日志级别来控制项目中日志的输出等级,所以这里就要写一个等级的枚举,这个枚举就定义LinkinLogLevel好了。2,开始写自己的日志核心类,定义LinkinLog4j类。然后这里要初始化日原创 2016-02-24 10:50:03 · 1147 阅读 · 1 评论 -
logback--过滤器+补充
ok,这里先简单罗列下logback日志框架的好处,关于仔细的整理后面会专门写一篇博客的。1,配置简单,易于上手2,一个日志文件中只能某一个级别的日志3,一个类中可以指定多个不同的日志,并且生成的每个日志文件中只包含其本身的内容4,可以关闭或者打开某几个包的日志,并且可以设置不同的包使用不同的日志级别。关于上面的第1点,第3点,第4点我前面博客里面都有整理到了。这里我们重点原创 2016-03-01 11:02:21 · 14610 阅读 · 3 评论