`
iBoyce
  • 浏览: 269 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

java 编程技术

阅读更多

    Log4j实在是很熟悉,几乎所有的Java项目都用它。但是我确一直没有搞明白。终于有一天我受不了了,定下心去看了一把文档,才两个小时,我终于搞明白了。一般情况下Log4j总是和Apache Commons-logging一起用的,我也就一起介绍吧。多了个东西不是更麻烦,而是更简单!


    一、Log4j的简单思想

    Log4j真的很简单,简单到令人发指的地步。不是要记录日志吗?那就给你一个Log,然后你用Log来写东西就行了,先来一个完整类示例:

packagetest;

importorg.apache.commons.logging.Log;

importorg.apache.commons.logging.LogFactory;

publicclass Test {

     static Log log = LogFactory.getLog(Test.class);

     public void log(){

         log.debug("Debug info.");

         log.info("Info info");

         log.warn("Warn info");

         log.error("Error info");

         log.fatal("Fatal info");

     }

/**

* @param args

*/

     public static void main(String[] args) {

         Test test = new Test();

         test.log();

     }

}
     别怕,看完这篇文章你就会觉得很简单了。

     Log4j默认把日志信息分为五个等级

     debug < info < warn < error < fatal

     虽然可以自己添加等级,但是我觉得没有必要,五个够用了吧!你要写入信息的时候就把信息归为五个等级中的一个,然后调用相应的函数即可。


     分五个等级到底有什么用呢?日志信息到底写到哪里去了?

     “LogFactory.getLog(Test.class)”又是什么意思捏?接着往下看吧!


    Log4j的关键之处在于它的继承思想。也就是一个Log可以继承另外一个Log的属性(输出到哪里,日志等级,日志格式等等)。怎么继承?

    Log4j是根据Log的名字来判断继承关系的,比如:

名字为“com.zhlmmc.lib”的Log就是“com.zhlmmc.lib.log”的parent,明白了吧!Log4j还有一个rootLogger,相当于Java的Object。

    回过头来看“LogFactory.getLog(Test.class)”这里的“Test.class”事实上传进去的是Test这个类的完整路径(包 名+类名),“test.Test”。这样如果存在“test”这个Log 那么Test这个Log就继承它,否则就继承rootLogger。


     那具体的Log属性是在哪里定义的呢?


    二、常见的配置文件

    虽然可以用xml或者在运行时用Java来配置Log4j,但还是properties文件好用啊!

    log4j.rootLogger=info,stdout

    log4j.appender.stdout=org.apache.log4j.ConsoleAppender

    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

    #Pattern to output the caller's file name and line number.

    log4j.appender.stdout.layout.ConversionPattern=%5p[%t] (%F:%L) - %m%n


    分析一下:

    第 一行,配置log4j.rootLogger你明白吧。应为它是根,总得配 置一下,否则别的Log继承什么啊。其他的Log可以配置也可以不配置。等号后面的第一个参数表示日志级别,可以填五个级别中的一种,后面的参数都是让 Log知道输出到哪里,如果你想让日志输出到两个地方就加两个输出参数,比如:


    log4j.rootLogger=info, stdout, file


    这里的info表示,该Log的日志级别为info,所有级别小于info的日志都不会被记录。比如使用这个配置文件的话,我刚开始举的那个类中


    log.debug("Debug info.");


    这句话是不起作用的,因为debug的级别小于info。这样就很容易控制什么信息在调试的时候要显示,什么信息在发布的时候要去掉。这些都不用改代码,很方便吧。


    但,stdout和file又是什么呢?

    接着往下看,就是配置stdout了,这个名字是随便取的,你可以叫它A:


    log4j.appender.A=org.apache.log4j.ConsoleAppender


    那么上面的rootLogger的参数stdout也要改成A,其他用到的地方当然也要改。这里的关键不是名字,而是appender类型,比如这里的 “ConsoleAppender”,看明白了吧,输出到 Console。后面两行都是设置日志格式的,一般情况下你就照抄吧。既然是最简入门关注于理解Log4j的工作原理,我就不介绍file类型的 appender了,一搜一大把。


    在实际的项目开发中,很可能遇到所引用的包用Log4j来记录日志,比如Hibernate。那么在这里你可以很容易的控制这个包如何记录日志。比如在上面的配置文件中加一行:


    log4j.logger.org.hibernate=fatal


    那么所有org.hibernate包下面的类就只会显示很少的信息,因为fatal的级别最高啊。


三、部署

    别怕,这可不是部署Tomcat。把log4j的包和commons- logging的包(加在一起才两个)放到classpath下面。然后把配置文件保存为log4j.properties,也放在classpath下 面(如果用Eclipse的话,放在src目录下即可)。然后你就可以跑了。

分享到:
评论

相关推荐

    Java编程技术(谭浩强编)下载

    Java编程技术是软件开发领域中的重要一环,尤其对于初学者来说,掌握Java的基本概念和技术是至关重要的。《Java编程技术(谭浩强编)》这本书由谭浩强先生编著,旨在为读者提供全面而深入的Java学习指导。下面,我们...

    高级Java编程技术 第一讲 java编程技术简介.ppt

    高级Java编程技术 第一讲 java编程技术简介.ppt

    完整版优质java课件 Java基础入门教程 Java编程技术 共14个章节 全套PPT课件资源集合.rar

    Java基础入门教程 Java编程技术01 java概述(2学时)(共27页).ppt Java基础入门教程 Java编程技术02 Java编程基础(4学时)(共55页).ppt Java基础入门教程 Java编程技术03 数组(2学时)(共22页).ppt Java基础入门...

    java编程技术(谭浩强编)

    java编程技术,谭浩强编,人民邮电出版社,带目录,高清

    JAVA编程技术

    主要阐述了Java语言的关键字、语句、语法规则、类库等的使用方法,其内容主要包括Java语言开发工具的介绍、面向对象编程的概念、Java基础语句、Java类、类的继承与多态等特性、接口、包、异常、Java基础类库的应用,...

    java编程技术文档

    Java编程技术文档是一份详尽的学习资源,涵盖了Java语言的核心概念和高级特性,旨在帮助开发者深入理解并掌握Java编程。这份文档特别强调了线程管理和字符串处理,这两个主题在Java编程中占据了至关重要的地位。 ...

    Java编程技术

    Java编程技术是初学者入门的重要领域,涵盖了从安装开发环境到编写、编译和运行Java程序的基础知识。本篇将详细介绍如何进行Java编程技术的学习,特别是针对初学者的实践操作。 首先,Java Development Kit(JDK)...

    案例驱动的《Java编程技术》教学改革研究.pdf

    案例驱动~Java编程技术教学模式是用一个具体的企业项目开发的例子贯穿始终,先梳理出Java编程技术的知识架构,整理出Java编程技术的各关键知识点,后寻找并改进具体的企业项目实例,将关键Java编程技术的知识点融入...

    谭浩强 Java编程技术.pdf

    《谭浩强 Java编程技术》是一本面向初学者的Java编程教材,由知名计算机教育专家谭浩强先生撰写。这本书全面介绍了Java语言的基础知识和核心概念,旨在帮助读者建立起坚实的Java编程基础。以下是对该书内容的详细...

    java学习资料JAVA编程技术复习纲要.doc

    本资源是关于 Java 编程技术的复习纲要,涵盖了 Java 语言基础知识、面向对象的编程语言、Java 语言的特点、Java 程序概述、Java 平台、基本数据类型与表达式等内容。通过对 Java 编程技术的系统学习,可以帮助读者...

    java编程技术知识

    Java编程技术知识是现代信息技术领域不可或缺的一部分,尤其对于学习编程的学生而言,掌握Java语言的精髓至关重要。Java以其“一次编写,到处运行”的跨平台特性,成为企业级应用开发的首选语言。在这里,我们将深入...

    java编程技术(谭浩强编)

    Java编程技术,作为一门广泛使用的计算机编程语言,其学习与理解需要深入到各种核心概念、语法结构以及实际应用。谭浩强编写的《Java编程技术》一书,因其详尽细致的讲解,深受广大初学者和专业人士的喜爱。本书涵盖...

    java编程技术(经典中的经典)

    Java编程技术是软件开发领域的重要组成部分,尤其对于初学者来说,掌握Java编程的基本概念和语法是至关重要的。《Java编程思想》是Java编程领域的一本经典之作,它深入浅出地讲解了Java语言的核心概念和技术,是许多...

    java编程技术

    java编程技术

    Java编程技术课件:01概述(2学时).pptx

    Java编程技术是软件开发领域中不可或缺的一部分,尤其在企业级应用和Web开发中占据着重要地位。本课件“Java编程技术课件:01概述(2学时).pptx”主要介绍了Java语言的基本概念、特点、平台版本以及程序示例。 首先...

    Java编程技术(谭浩强编).part2.rar

    Java编程技术(谭浩强编).part2.rar

    基于java编程技术论坛设计与实现.docx

    基于java编程技术论坛设计与实现

    Java编程技术(谭浩强编).part1.rar

    Java编程技术(谭浩强编).part1.rar

    Java编程技术课件:02Java编程基础(4学时).pptx

    Java编程技术课件:02Java编程基础(4学时).pptx

Global site tag (gtag.js) - Google Analytics