`
Lincoln
  • 浏览: 81342 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

通用日志包学习笔记

阅读更多
通用日志包

   在构建一个Web系统得过程中,通常要完成的工作不仅仅是编码,还需要完成一些记录日志的工作。这样做是为了更好的监视代码中变量的变化情况和跟踪代码的运行轨迹,同时充当开发环境中的调试器。


1. 通用日志包概述
Apache通用日志包十是Apache组织的开源项目。它负责向开发者提供一系列通用的日志接口。用户可以自由地选择和实现通用日志接口。通用的日志包目前主要支持以下几个日志器。
Log4j日志器是一个开放源代码项目。它由Logger,Appender,和Layout这三个主要的组件构成。
SimpleLog 日志器在通用日志包中自带了org.apache.commons.logging..impl.Simple Log日志实现类。它实现了Log接口,把日志消息都输出到系统错误流System.err 中。
NoOpLog日志器在通用日志包中自带了org.apache.commons.logging.impl.NoOpLog日志实现类,实现了Log接口。其输出日志的方法中不进行任何操作。
其中,SimpleLog 和NoOpLog 日志器是通用日志包自带的,Log4j日志器是第三方的软件。


2.配置通用日志接口
   要在Web应用系统中使用日志,一般都需要同过以下几个步骤来完成。
(1) 下载相关的JAR文件。
(2) 部署JAR文件。]
(3) 在通用日志包的属性文件中指定要使用的日志器(Log4j,SimpleLog或NoOpLog)。
(4) 选择日志器以后,为该日志其设定日志级,输出格式和地点等属性/。


3.下载相关的JAR文件
  通用的日志包通常都是以JAR文件存在。这些JAR文件都可以在http://jakarta.apache.org/commons/loggin/这个地址下载到。(通常,在Struts下载包和Tomcat5.0.*的/Tomcat /common/lib目录下都包含了该包。)该包的包名为commons-logging.jar因为commons-logging.jar 文件之包含有SimpleLog和NoOpLog两种日志器,如果要使用Log4j日志器,还需要到apache的网站上下载Log4j的jar文件。下载下来的JAR文件应该叫做logging-log4j-1.2.13.zip。


4.部署日志器
  如果要使用SimpleLog或者NoOpLog日志器,那么就把commons-logging.jar文件放到工程项目的/Web-INF/lib目录下。如果要使用第三方的Log4j日志器,那么就要把Log4j的JAR文件放到/Web-INF/lib/。然后再工程项目的属性窗口的构建路径中导入commons-logging.jar文件或Log4j的JAR文件。


5.指定日志器
  通用日志包从名为common-logging.properties属性文件中获取实现接口的日志器。如果要使用Log4j日志器,那么就把该行的内容改为org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JCategoryLog,其他几个日志器与Log4j类似。


设置日志器属性
(1) 配置SimpleLog日志器
如果是使用SimpleLog日志器,那么其日志输出地点都是System.err系统错误流,用户不用进行配置。但可以在simplelog.properties属性文件中设置其日志级别。如下代码设置SimpleLog的日志级别为info。
Org.apache.commons.logging.simplelog.defaultlog=info
最后要把simplelog.properties属性文件保存到Web-INF/classes目录下。


(2) 配置Log4j日志器
配置Logger组件。通常会配制一个rootLogger,其配制语句如下:
        Log4j.rootLogger=[日志级别],Appender1,Appender2……
        其中,日志级别分别有OFF,FATAL,ERROR,WARN,INFO,DEBUG这六种权限。通过定义日志权限,可以控制程序中的日志是否打印输出等操作。Appender1,Appender2是用来指定Appender组件的。Appender组件用于配置消息的目的地,用户也可以同时指定多个Appender.
       
配置Appender组件。Appender是用来配置日志消息的输出地,其基本配置语法如下:
         Log4j.appender.AppenderName =……
         Log4j.appender.AppenderName.option1=…….
         Log4j.appender.AppenderName.option2=…….
       
        AppenderName由用户自己设置,其值由Log4j提供。Log4j提供了以下几种值。
        Org.apache.log4j.ConsoleAppender    输出到控制台
        Org.apache.log4j.DaillyRollingFileAppender   每天产生一个文件
        Org..apache.log4j.FileAppender     输出到文件
        Org,.apache.log4j.RollingFileAppender  文件按固定大小保存,超过固定大小,就新建一个文件。
         Org.apache.log4j.WriterAppender    把日志消息以流的形式进行发送。
       
下面举个实例进行讲解:
          Log4j.appender.file=org.apache.log4j.FileAppender
          Log4j.appender.file.File = log4j.txt
         以上代码定义名为file的Appender把日志消息输出到文件,文件名为log4j.txt。
        
配置Layout组件。Appender有一个Layout属性来指定日志文件以什么格式进行存储。Log4j提供以下几种格式。
         Org.apache.log4j.HTMLLayout    以HTML表单格式存储。
         Org.apache.log4j.PatternLayout    以指定的布局模式存储。
         Org.apache.log4j.SimpleLayout     以包含日志消息的级别和信息字符窜的简单格式存储
         Org.apache.log4j.TTCCLayout     以包含日志产生时间 线程和类别等信息的格式进行存储。
        
配置语句格式如下:
         Log4j.appender.AppenderName.layout =…..
         Log4j.appender.AppenderName.layout.option1 =…
         Log4j.appender.AppenderName.layout.option2 =….

//测试属性文件
log4j.rootLogger=DEBUG,stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %5p (%F:%L) - %m%n

//测试类
package net.wanjin.testlog4j;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

public class TestLog {

/**
* @param args
*/
  public static void main(String[] args) {
Log log = LogFactory.getLog("log");
log.error("LogAction 中出现异常 -LogAction.java");
}

}


  


  
分享到:
评论

相关推荐

    学习笔记hibernate所需jar包.rar

    还有一些其他的辅助库,如`commons-collections.jar`、`commons-logging.jar`等,它们提供了集合操作、日志等通用功能,是Hibernate正常工作所依赖的。 配置这些jar包通常涉及到以下步骤: 1. 将所有必要的jar文件...

    23种设计模式学习笔记

    这个“23种设计模式学习笔记”文档将引导你深入理解这些模式,并帮助你在实际编程中有效地应用它们。以下是对23种设计模式的详细解读: 1. **单例模式**:确保一个类只有一个实例,并提供全局访问点。它常用于控制...

    java学习笔记 java学习笔记

    Java学习笔记涵盖了许多核心概念,包括面向对象编程的各个方面。以下是对这些知识点的详细解析: 1. **继承中方法的重写**: 当子类重写父类的方法时,子类方法的访问权限必须至少等于或大于父类中对应方法的访问...

    jpa学习笔记

    ### JPA 学习笔记详解 #### 一、JPA 概述 Java Persistence API (JPA) 是 Sun 公司提出的一种 Java 持久层标准,它为 Java 开发者提供了一种对象关系映射 (ORM) 的工具来管理 Java 应用程序中的关系型数据。JPA ...

    Java JDK 7学习笔记(国内第一本Java 7,前期版本累计销量5万册)

    丛书名: 学习笔记 出版社:清华大学出版社 ISBN:9787302282082 上架时间:2012-5-9 出版日期:2012 年5月 开本:16开 页码:564 版次:1-1 所属分类:计算机 > 软件与程序设计 > JAVA(J#) > Java 编辑推荐   ...

    SPRING学习笔记2

    Spring学习笔记2涵盖了Spring框架的核心概念和重要特性,旨在帮助开发者深入理解并熟练掌握Spring的使用。 1. **依赖注入(Dependency Injection, DI)**:这是Spring最核心的设计原则,它允许对象之间的依赖关系在...

    Hadoop学习笔记

    这个“Hadoop学习笔记”涵盖了Hadoop生态系统中的核心组件,包括HDFS(Hadoop分布式文件系统)、HBase(一个分布式、列式存储的数据库)、Hive(数据仓库工具)以及Spark(一个快速、通用且可扩展的数据处理引擎)。...

    java学习笔记源码MD.rar

    Java学习笔记源码MD.rar是一个压缩包,其中包含了一系列关于Java编程语言的学习资料,特别是针对JVM(Java虚拟机),Spring框架以及Java多线程等内容的深入探讨。这些主题是Java开发中的核心部分,对于任何想要提升...

    Spring学习笔记.doc

    ### Spring学习笔记知识点详解 #### 一、Spring框架概述 **1.1 什么是Spring** Spring框架是一个开源的轻量级应用框架,主要用于简化企业级应用程序的开发过程。它的核心特性在于提供了一种灵活的方式来组织和...

    iptables学习笔记.pdf

    ### iptables学习笔记知识点概述 #### 数据包流向顺序 数据包在通过iptables的不同链和表时,遵循特定的顺序。了解这一流程对于正确配置iptables至关重要,因为它有助于理解数据包是如何被处理、过滤或修改的。 -...

    张龙圣思园struts2学习笔记word

    通过自定义拦截器,开发者可以实现如日志记录、权限验证、事务管理等通用功能,提高代码复用性。预设的拦截器如Params拦截器用于参数绑定,Validation拦截器进行字段验证,Exception拦截器处理异常。 此外,笔记...

    C++&C学习笔记

    ### C++&C学习笔记知识点概览 #### 类与数据抽象 - **概念**:类是一种用户自定义的数据类型,它将数据(属性)和作用于数据上的操作(方法)封装在一起,从而实现了数据的抽象。 - **特点**:与C语言中的结构体...

    CGI编程完全手册(个人学习笔记

    - **定义**:CGI,即通用网关接口(Common Gateway Interface),是Web服务器提供信息服务的一种标准接口。 - **功能**:允许Web服务器获取客户端提交的信息,并将其传递给服务器端的CGI程序进行处理,最终将处理结果...

    小程序学习笔记24.04.05

    在本篇“小程序学习笔记24.04.05”中,涵盖了小程序开发中一些基础知识点和常见操作,包括基础组件的使用、函数和事件的处理、以及变量的定义与应用。 **基础组件:** - **text组件:** 文本组件,用于在小程序中...

    zigbee基础实验学习笔记

    这些笔记将是你学习过程的重要参考资料,帮助你回顾和深化理解。 总的来说,Zigbee是一个强大且实用的无线通信技术,广泛应用于智能家居、工业自动化和环境监测等领域。通过不断实践和学习,你将能够熟练掌握Zigbee...

    spring学习笔记(十)

    【标题】"Spring学习笔记(十)"主要涵盖了Spring框架中的AOP(面向切面编程)这一核心概念。在Spring框架中,AOP被用来实现横切关注点,如日志记录、事务管理、性能监控等,它允许程序员将这些通用功能模块化,减少...

    *Log4j 学习笔记

    Logger 的命名基于包名,具有层次结构,使得日志配置可以按模块进行精细化管理。 2. **Appender** - 日志目的地 Appender 负责将格式化的日志信息输出到特定位置。常见的 Appender 包括: - **ConsoleAppender** ...

    CoreJava学习笔记

    ### CoreJava学习笔记 #### 一、JAVA特点与运行原理 **JAVA特点:** 1. **简单性**:Java的设计者们将C++语言中许多不易理解和容易混淆的部分去除,使得Java更容易理解与掌握。 2. **面向对象**:Java几乎一切都...

Global site tag (gtag.js) - Google Analytics