网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.Bean和Servlet的企业应用.
.高性能Java设计与开发.
.使用ActiveX功能查找并显示XML数.
.利用Eclipse进行重构(上).
.利用EJB 3.0的JPA设计企业应用程.
.对象引用是怎样严重影响垃圾收集.
.Java性能的优化(下)(转).
.Struts开发指南之安装与使用部分.
.64位环境中的Java.
.Sun谈新一代手机前景 充分利用Ja.
.JAVA中的日期时间操作.
.开动脑筋:Java字符丢失的解决办法.
.Java语言编码规范 选择自 hk_von.
.将JAVA编译为EXE的几种方法.
.使用JDOM操作XML系列文章四 使用.
.使用 JFreeChart来创建基于web的.
.菜鸟必学:WebLogic 8安装配置.
.一个最简单的java程序.
.toLocaleLowerCase 方法.
.用单例模式实现的java连接MySql数.

核心API最佳实践——JDK日志分级

发表日期:2008-1-5



  日志(Log)是什么?字典对其的解释是"对某种机器工作情况或某项任务进展情况的记载"。对于应用系统来说,日志就应该记录应用系统的运行状况了。
  
  是否需要记录日志?这个问题无需回答,这是毋庸置疑的--当然要记了。
  
  剩下的问题就是应该如何记录日志才能确保日志具有高可用性和低耗性了。日志信息过于简化,乃至于没有日志,则用户无法找到解决问题所需的信息,进而妨碍问题的解决;然而日志信息过于具体不仅会降低系统的性能而且会使真正有用的信息沉没在文字的海洋中。
  
  为此JDK给出了建议的日志分级标准。将不同的信息根据其重要性分级。与此同时可以根据实际需要在JRE中设置需要记录的日志级别--级别高于此值的日志才被记录。依照JDK提供的标准(Java.util.logging.Level)将日志划分为OFF、SEVERE、WARNING、INFO、CONFIG、FINE、FINER、FINEST、ALL等从高到低九个级别。他们都分别对应着唯一的整数值,即OFF=Integer.MAX_VALUE、SEVERE=1000、WARNING=900、INFO=800、CONFIG=700、FINE=500、FINER=400、FINEST=300、ALL=Integer.MIN_VALUE。通过对java.util.logging.Level的泛化(扩展),开发人员可以在JDK提供的标准基础之上定义自己的日志分级标准。
  
  在这九个级别中OFF、SEVERE、WARNING、INFO、CONFIG、ALL比较轻易理解。
  
  OFF级别主要用于JRE日志输出控制,表示不输出任何信息。
  
  SEVERE(严重)级别描述组织程序正常运行的重大事件。这些事件的表述必须能够让最终用户和系统治理员清楚地了解到底发生了什么事情。
  
  WARNING(警告)级别描述了最终用户或系统治理员维护时比较感爱好的事件,或指示系统存在潜在问题的事件。这些事件都需要非凡提醒最终用户或系统治理员注重。
  
  INFO(信息)级别主要用于描述输出到控制台或其替代品的,具有相当程度重大意义的事件。譬如系统的心跳信息,以及其他系统希望告知最终用户或系统治理员的信息等。
  
  CONFIG(配置)级别主要用于描述可以辅助调试解决问题的静态配置信息。譬如CPU类型、操作系统类型、内存容量、系统语言等等。
  
  ALL级别也是主要用于JRE日志输出控制,表示输出所有日志信息。
  
  FINE、FINER、FINEST等三个级别被用于描述不同程度的跟踪信息。这三个级别被sun分别翻译为"良好","较好"和"最好",但是笔者认为翻译为"略细","较细","最细"更合适。这三个级别比较轻易使人难于区分。到底什么样的信息应该以哪个级别输出呢?
  
  一般说来,FINE级别用于输出开发人员广泛关注的信息。包括小的可恢复的故障,潜在的性能问题、数据源连接不足、服务超时等。
  
  FINER级别描述比FINE级别更具体的信息。包括进入/返回方法调用,抛出了一个异常等信息。
  
  FINEST级别描述更具体的调试信息。包括开发人员在方法内为了调试方便而输出的调试信息,即某些日志分级系统中定义的DEBUG级别信息。
  
  将方法调用/返回信息作为一个单独的级别处理是一个明智的选择。在解决系统运行问题时,通常根据方法调用/返回过程就能大致确定问题所在。
  
  此日志分级标准被广泛地应用于中小型系统中。更具体的信息可以参考JDKAPI文档的java.util.logging部分。
上一篇:Java EJB容器的存取和实现 人气:483
下一篇:J2SE5.0用Executor灵活处理事件下发 人气:923
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐