- 浏览: 73231 次
- 性别:
- 来自: 厦门
文章分类
最新评论
-
shenjichao2009:
请问你理解如何使用g++吗?如何将使用C++编写的代码打包成s ...
g++编译命令选项 -
nbsven:
难道没人用过UFOUpload组件,gm365.com上发布的 ...
SmartUpload的一些改进
1 概述 在日志框架出现之前,开发人员主要是通过自己实现的日志组件来实现日志的记录。这些日志组件都有着共同的问题:
■ 功能太弱,只能输出到控制台或指定的文件
■ 大量的日志代码混在业务逻辑中,代码可读性差,在正式环境中的日志打印无法控制导
致系统性能下降
■ 日志格式难以统一维护 日志框架的出现解决了上述的问题,降低了日志代码的耦合
性,通过配置提高日志记录的灵活性。
日志框架的基本概念为以下几点:
■ 输出级别:是调试信息,信息,还是警告,错误,致命错误等
■ 输出目的地:输出到控制台,文件,可写设备,还是数据库
■ 输出格式和内容:输出哪些东西,如何排版等。
Java领域里存在大量的日志框架和组件,www.open-open.com收录了二十多个基于java技术的日志框架。 这些日志框架从功能上可分为三类。
一是日志工具类,它实现了日志的记录,格式和级别的划分,代表为Logback Simplelog。
二是日志系统,提供了完整的框架功能并实现了日志记录。代表为JDK Logger、log4j和commons-logging。
三是抽象整合类,它提供了一组接口,完成日志功能,通过包装其他日志工具或系统来工作commons-logging、Slf4j。
从历史上看,Log4j出现最早,它实现了日志的记录,格式和级别的划分,以及配置简单的特点把Java的日志框架推到了一个新的高度,使得开发人员彻底抛弃System.out.println。
自JDK1.4开始,JDK提供了java.util.logging类库,提供了一个完整的日志框架,在设计上要比Log4j要更清晰。
此外同期还出现了一些其他的日志框架,功能大同小异,在重复发明轮子的同时还造就了日志框架的概念模糊和使用混乱。在这样的背景下,一个基于Apache的commons-logging日志框架产生了。commons-logging不提倡重复发明轮子,它本身不提供任何日志方面的功能,只是对现有的主流日志框架(Log4j、JDK Logger、Simplelog等)进行包装,提供日志统一的接口。这样,开发的时候,只需要使用commons-logging,通过配置,灵活选择底层实现。
Log4j经过多年的发展和应用,不断完善和加强,增加了热部署、异步批量把日志写入数据库等功能。在Log4j看起来越来越强大时,内部却充满了代码的坏味道。就连它的作者也认为应该有一个更好的日志框架。于是再次操刀创建了slf4j来取代commons-logging,创建了Logback来取代Log4j。目前,Log4j和JDK Logger应用最为广泛,slf4j作为新兴的抽象层,整合Logback,以其简洁,快速,正被越来越多的顶级项目使用。如Hibernate,Jetty。
2 代表日志组件简要介绍
Log4j:历史悠久,应用广泛,被移植到多种语言及平台,功能强大,在众多的日志框架中,仍占据着主导地位。
JDK Logger:JDK提供的日志框架,设计精良,和JDK紧密结合,控制灵活,使用简单。 commons-logging:提供了日志的抽象层,可以整合多种实现,但有classloader问题。
Slf4j:提供了jcl的超集,避免了classloader问题,逐步取代commons-logging
Logback:可靠,通用,快速,灵活的java日志工具,逐步取代Log4j。
3 项目选择思考
■ 单一的项目,如桌面应用,采用JDK Logger,免配置,控制灵活。
■ Web开发,采用log4j,因为系统已经有了很多的配置文件,不在乎多一个,而且log4j可以脱离任何组件,不像jul,和jvm紧密结合在一起。
■ 新项目、多项目整合开发,采用slf4j,一是它可以整合其他遗留日志组件,二是其提供的抽象层,为将来的开发提供了灵活性。而且slf4j文档和支持都很完善,性能更好。
4 参考资料
■ IBM developerworks对log4j的介绍。 http://www.ibm.com/developerworks/cn/java/l-log4j/index.html
■ Java开源日志组件列表。http://www.open-open.com/open50229.htm
■ Slf4j官方网站。http://www.slf4j.org/ ■ Logback官方网站。http://logback.qos.ch/ ■ Log4j官方网站。http://logging.apache.org/
■ commons-logging官方网站。http://commons.apache.org/logging/
■ 功能太弱,只能输出到控制台或指定的文件
■ 大量的日志代码混在业务逻辑中,代码可读性差,在正式环境中的日志打印无法控制导
致系统性能下降
■ 日志格式难以统一维护 日志框架的出现解决了上述的问题,降低了日志代码的耦合
性,通过配置提高日志记录的灵活性。
日志框架的基本概念为以下几点:
■ 输出级别:是调试信息,信息,还是警告,错误,致命错误等
■ 输出目的地:输出到控制台,文件,可写设备,还是数据库
■ 输出格式和内容:输出哪些东西,如何排版等。
Java领域里存在大量的日志框架和组件,www.open-open.com收录了二十多个基于java技术的日志框架。 这些日志框架从功能上可分为三类。
一是日志工具类,它实现了日志的记录,格式和级别的划分,代表为Logback Simplelog。
二是日志系统,提供了完整的框架功能并实现了日志记录。代表为JDK Logger、log4j和commons-logging。
三是抽象整合类,它提供了一组接口,完成日志功能,通过包装其他日志工具或系统来工作commons-logging、Slf4j。
从历史上看,Log4j出现最早,它实现了日志的记录,格式和级别的划分,以及配置简单的特点把Java的日志框架推到了一个新的高度,使得开发人员彻底抛弃System.out.println。
自JDK1.4开始,JDK提供了java.util.logging类库,提供了一个完整的日志框架,在设计上要比Log4j要更清晰。
此外同期还出现了一些其他的日志框架,功能大同小异,在重复发明轮子的同时还造就了日志框架的概念模糊和使用混乱。在这样的背景下,一个基于Apache的commons-logging日志框架产生了。commons-logging不提倡重复发明轮子,它本身不提供任何日志方面的功能,只是对现有的主流日志框架(Log4j、JDK Logger、Simplelog等)进行包装,提供日志统一的接口。这样,开发的时候,只需要使用commons-logging,通过配置,灵活选择底层实现。
Log4j经过多年的发展和应用,不断完善和加强,增加了热部署、异步批量把日志写入数据库等功能。在Log4j看起来越来越强大时,内部却充满了代码的坏味道。就连它的作者也认为应该有一个更好的日志框架。于是再次操刀创建了slf4j来取代commons-logging,创建了Logback来取代Log4j。目前,Log4j和JDK Logger应用最为广泛,slf4j作为新兴的抽象层,整合Logback,以其简洁,快速,正被越来越多的顶级项目使用。如Hibernate,Jetty。
2 代表日志组件简要介绍
Log4j:历史悠久,应用广泛,被移植到多种语言及平台,功能强大,在众多的日志框架中,仍占据着主导地位。
JDK Logger:JDK提供的日志框架,设计精良,和JDK紧密结合,控制灵活,使用简单。 commons-logging:提供了日志的抽象层,可以整合多种实现,但有classloader问题。
Slf4j:提供了jcl的超集,避免了classloader问题,逐步取代commons-logging
Logback:可靠,通用,快速,灵活的java日志工具,逐步取代Log4j。
3 项目选择思考
■ 单一的项目,如桌面应用,采用JDK Logger,免配置,控制灵活。
■ Web开发,采用log4j,因为系统已经有了很多的配置文件,不在乎多一个,而且log4j可以脱离任何组件,不像jul,和jvm紧密结合在一起。
■ 新项目、多项目整合开发,采用slf4j,一是它可以整合其他遗留日志组件,二是其提供的抽象层,为将来的开发提供了灵活性。而且slf4j文档和支持都很完善,性能更好。
4 参考资料
■ IBM developerworks对log4j的介绍。 http://www.ibm.com/developerworks/cn/java/l-log4j/index.html
■ Java开源日志组件列表。http://www.open-open.com/open50229.htm
■ Slf4j官方网站。http://www.slf4j.org/ ■ Logback官方网站。http://logback.qos.ch/ ■ Log4j官方网站。http://logging.apache.org/
■ commons-logging官方网站。http://commons.apache.org/logging/
发表评论
-
Python super()
2013-08-14 23:18 939super(type[, object-or-type] ... -
PyInstaller2.0 使用
2013-07-11 14:16 1941各版本的PyInstaller的使用方式大不相同。 Py ... -
XP系统中打开CMD并定位到指定文件夹
2013-07-10 10:00 2340手动添加注册表项 打开注册表编辑regedit,且定位 ... -
LAMPP下虚拟主机配置注意事项
2011-11-07 10:51 7871、默认情况下,http-vhost.conf是被注释掉的。 ... -
Linux中数据库编码的一些习惯
2010-09-27 17:40 0经常在Windows下开发,在Linux下部署服务,与数据库交 ... -
Linux hostname的含义和修改
2010-09-15 17:46 1066Linux操作系统的hostname是一个kernel变量,可 ... -
Debian中安装MySQL
2010-09-15 17:37 01.下载MySQL : http://download.chi ... -
Debian中安装Tomcat的过程
2010-09-15 16:52 17221、获取:wget http://apache.etoak.c ... -
Debian中安装JDK的一些错误及调试方法
2010-09-15 16:24 1331今天在Debian中安装了JDK,遇到了不少问题。就先按安装的 ... -
Perl模式匹配
2010-09-10 14:27 703http://www.cbi.pku.edu.cn/chine ... -
乱码笔记1
2010-09-10 11:55 651<%@ page language="java ... -
在JSP页面中引用外部CSS文件不起作用
2010-09-01 11:01 1899在CSS文件中加入@charset"gb2312&q ... -
架设一个Webservice的过程
2010-08-15 18:08 0因为项目的需要,要架设一个web服务,下面记录整个过程 -
解析静态内部类的使用目的与限制(网摘)
2010-05-27 09:59 752在开发过程中,内 ... -
关于页面编码的一些解惑
2009-07-27 18:08 0关于JSP页面的编码 -
Grails的学习
2009-04-23 18:34 0Grails,Rails,Django等是对应于敏捷开 ... -
@PostConstruct
2009-03-15 20:56 0该注解的方法在同个类里只能有一个,必须是依赖注入之后, ... -
@Resource的一些相关应用。
2009-03-15 20:49 0@Resource 对于在glassfish里 ... -
@EJB的一些要点
2009-03-15 00:55 0标准文档里说mappedName一般是一个全局JNDI ... -
项目完结
2009-03-07 20:06 750今天研一的两个师兄请我和那钦出去吃饭,庆祝项目的完结。 ...
相关推荐
下面介绍一个宣传方法,宣传效果好不好,自己试过就知道。因为任何方法都有其局限性。因人因站因环境的不同而效果差别相当大,不能一概而论。 网摘精灵是一款网站推广网站,这个软件利用网摘网站点多面广的优势,把...
网摘集合网摘集合网摘集合网摘集合网摘集合网摘集合网摘集合网摘集合网摘集合网摘集合网摘集合网摘集合网摘集合网摘集合网摘集合网摘集合网摘集合网摘集合网摘集合网摘集合网摘集合网摘集合网摘集合网摘集合网摘集合...
另外,如果需要针对搜索引擎进行优化,请把Url.asp文件里的iframe框架去掉改为链接模式,也还可以增加相关盈利的广告代码。 “天空网摘”程序分为免费共享版和80元付费后台功能完整版(包含数据更新服务),前者...
2、修改数据库配置文件,conn.php.修改网摘配置文件 include/setup.php。 3、后台路径admin/default.php 默认帐号密码 是 admin admin . 4、生成所有网摘静态页面程序为data.php。生成所有新网摘的程序为 datanew....
百亿网摘整站 后台功能 --------------------- 基本信息 管理站点的基本信息 栏目管理 栏目分类 网摘管理 已推荐网摘 推荐网摘 首页生成 重新生成页面 审核网摘 管理网摘 模版管理 模版管理 用户管理 管理员修改 ...
在互联网信息爆炸的时代,网摘程序为用户提供了方便的工具,帮助他们保存感兴趣的内容,便于日后查阅和分享。这种程序通常包含用户登录系统、内容收藏功能、分类管理以及搜索功能等,旨在提升用户的网络浏览体验。 ...
另外,如果需要针对搜索引擎进行优化,请把Url.asp文件里的iframe框架去掉改为链接模式,也还可以增加相关盈利的广告代码。 “天空网摘”程序分为免费共享版和80元付费后台功能完整版(包含数据更新服务),前者...
【加入网摘插件 v1.0 通用版】是一个旨在帮助网站所有者提升其在线可见性和用户参与度的工具。这款插件的核心功能是使用户能够方便地将网站内容添加到他们的网络收藏夹或网摘站点,从而促进网站的宣传和推广。尤其...
2、修改数据库配置文件,conn.php.修改网摘配置文件 include/setup.php。 3、后台路径admin/default.php 默认帐号密码 是 admin admin . 4、生成所有网摘静态页面程序为data.php。生成所有新网摘的程序为 datanew....
目标 利用网摘建站,打造最便捷的资讯服务!最适合于做小型SEO网站。 适用范围 新闻娱乐、专业学术、地方门户、行业资讯等相关网站建设。 参考范例:电子书藏家 初始化 注册用户:天空 密码:admin 登录:Login....
连连看是一款广受欢迎的休闲游戏,其核心玩法是通过消除两个相同图案的匹配来清除棋盘。在设计连连看游戏时,算法起着至关重要的作用,尤其是路径算法和最短路径算法。以下是对这两个概念的详细说明: ...
《咖啡屋网摘联盟程序 v6.0 终极无错误版》是一款专为网络爱好者设计的开源软件,集成了用户注册与互动功能,将网摘分享提升到了一个新的层次。这款程序的出现满足了广大用户对更加完善、功能更丰富的网摘平台的需求...
结合博客、相册、文件、网摘、迷你博客、论坛、活动、圈子、资讯等应用模块,可以快速的搭建具有SNS特征的在线社区。借助SpaceBuilder平台的服务(用户、朋友、私信、邀请、权限、审核、隐私、积分、通知、动态、...
6. **日志记录**:为了便于调试和监控,源码可能集成了日志记录功能,记录运行时的错误信息和操作日志。 在使用此源码前,开发者需要了解ASP的基本语法和常用组件,如Request、Response、Server等对象,以及如何...
麦布网摘是专门为个人站长制作的一个网摘程序,前台主要是分类显示功能,后台有手工添加、修改、删除以及分类的管理,功能比较简单,非常适合二次开发,本系统秉承麦布程序的一贯风格,特点速度快、占用服务器资源小...
标题"CSDN网摘右链添加"涉及到的是在Windows操作系统中通过修改注册表来增加或删除CSDN网摘的快捷方式。CSDN(China Software Developer Network)是中国的一个知名IT技术社区,提供了丰富的编程资源、论坛讨论以及...
"PW广告添加方式网摘插件"是一款专为网站管理者设计的工具,旨在方便地在网页上添加广告,尤其适用于那些希望通过广告展示来增加收入或推广产品的网站。这款插件的特点在于其简单易用的安装过程和灵活的广告投放位置...
标题中的“23个收藏到网摘的16x16图标及代码.rar”表明这是一个包含23个图标以及对应代码的压缩文件,这些图标尺寸为16像素乘以16像素,通常用于网页设计或者软件开发中。网摘,也被称为书签服务或社交书签,是用户...