java logging--java记录日志

来源:互联网 发布:电脑程序员工资多少 编辑:程序博客网 时间:2024/06/09 23:38

这是在CSDN第一篇博客,菜鸟一枚,高手勿喷。只是将自己的学习经历,一点点记录下来,正如下面将要讲的记录日志(logger.info("codeboy, everyday learning....."))。

以前编写小程序,不在乎记录日志,很多时候只是使用简单的系统记录日志功能,即PrintStream(System.out.println("some info here"))。

前几天,突然想看看java logging。Google搜索了一番,看了看wikipedia的介绍,有了一定的了解。

Logging(记录日志)分为三个部分:Logger,Fomatter,Handler(Appender)。Logger用来捕获记录信息,将其传递给Logging Framework;Formatrer添加格式,以待输出,Appender用来指定输出的目的地(控制台,文件等)。日志信息有6个级别:FATAL,ERROR,WARNNING,INFO,DEBUG,TRACE(很少使用)。

现在主要使用的日志框架有:Log4J,Java Logging API(JUL),Apache Commons Logging(JCL),SLF4J。其中Log4J是具体的实现框架,JVM中含有JUL的默认实现,JCL只是一个包装(一个Wrapper,依赖于底层实现),SLF4J则只是一个Facade(使用了Facade模式,依赖于底层实现)。了解了这样一个结构层次,以后使用起来会方便很多。

很多时候编写项目会离不开日志记录,很多必须要导入的.jar文件内部也使用了某个日志框架,这样某些日志记录框架的依赖文件就得包含到classpath中。以前是只管导入.jar文件,而不用理会它的作用到底是什么。但不能总是这样,理解工作机制,总会对自己有所助益。

在使用SLF4J时,会使用它的桥接,因为它只是一个facade(外表)。常用的桥接有下面几种:

I.JCL-OVER-SLF4J.JAR(是JCL 1.1版本的替代品,从JCL转向SLF4J时使用,即使用SLF4J的接口,而具体实现使用JUL);

II.SLF4J-JCL.JAR(由SLF4J迁移到JCL时需要);

III.LOG4J-OVER-SLF4J.JAR(从LOG4J迁移到SLF4J时使用,同JCL-OVER-SLF4J;当从LOG4J迁移到SLF4J时,将LOG4J.JAR替换为LOG4J-OVER-SLF4J.JAR,而不需要修改一行代码);

IV.SLF4J-JDK14.JAR(将SLF4J的调用委托给JUL,较少使用);

V.JUL-TO-SLF4J.JAR(将JUL的记录传递给SLF4J,较少使用)。

    以上是自己总结的java 日志记录的相关知识,现在使用相关框架会轻松许多。其实最简单的日志记录是PrintStream,它可以将信息打印到控制台,也可以将信息输出到文件中,当我们需求比较简单时,使用PrintStream会是不错的选择。

www.dzone.com有大量的讲解资料,学习文档等,有时间大家可以多逛逛.....

晚安,Coder At Sleep Right Now.....


原创粉丝点击