`

log4j的例子和教程

    博客分类:
  • JAVA
阅读更多

log4j的例子和教程

分类:Java基础相关
csdn上有很多关于log4j的例子和教程,有的写的挺好的,但为了巩固知识,自己也写一份吧。

我对log4j的要求不是很高,主要有两个用途

一) web应用程序中如何使用log4j和common-logging 包;
二) 普通的java应用程序如何使用log4j和common-logging 包;

首先先总结简单的,在普通java应用程序中如何使用log4j和common-logging 包

步骤如下:
1) 将 log4j.jar 和 common-logging.jar 两个包加入到环境变量或者classpath

2) 写log4j.xml 文件,例如:

<?xml version="1.0" encoding="utf-8">
<!doctype log4j:configuration system "log4j.dtd">

<log4j:configuration xmlns:log4j="http://jakarata.apache.org/log4j/">

<appender name="file" class="org.apache.log4j.rollingfileappender">
<param name="file" value="log.log"/>
<layout class="org.apache.log4j.patternlayout">
<param name="conversionpattern" value="%d [%t] %p - %m%n"/>
</layout>
</appender>

<logger name="com.log4j.test.test" additivity="false">
<level value="debug"/>
<appender-ref ref="file"/>
</logger>

<root>
<level value="info"/>
<appender-ref ref="file"/>
</root>

</log4j:configuration>

3) 程序中使用方法:
package com.log4j.test;

import org.apache.log4j.xml.domconfigurator;

import org.apache.commons.logging.*;


class configlog4j
{
public static void config()
{
domconfigurator.configure("config/log4j.xml");
}
}
public class testlog4j {
private log log =logfactory.getlog(testlog4j.class);

public testlog4j() {
configlog4j.config();

}

public void testprint1()
{
log.debug("debug test");
log.info("info test");
log.warn("warn test");
log.error("error test");
}

public static void main(string[] args)
{
testlog4j test = new testlog4j();
test.testprint1();

}

}

ok ! 这样就会按要求打印消息了。

另附 log4j.dtd

log4j:configuration
|
+-- appender (name, class)
| |
| +-- param (name, value)
| +-- layout (class)
| |
| +-- param (name, value)
+-- logger (name, additivity)
| |
| +-- level (class, value)
| | |
| | +-- param (name, value)
| +-- appender-ref (ref)
+-- root
|
+-- param (name, class)
+-- level
| |
| +-- param (name, value)
+-- appender-ref (ref)


输出格式定义:
%m 输出代码中指定的消息
%p 输出优先级
%r 输出自应用启动到输出该log信息耗费的毫秒数
%c 输出所属的类目,通常就是所在类的全名
%t 输出产生该日志事件的线程名
%n 输出一个回车换行符,windows平台为“\r\n”,unix平台为“\n”
%d 输出日志时间点的日期或时间,默认格式为iso8601,也可以在其后指定格式,比如:%d{yyy mmm dd hh:mm:ss,sss},输出类似:2002年10月18日 22:10:28,921
%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。一般使用了它就不需使用%c了。 
 
分享到:
评论

相关推荐

    log4j学习源码教程

    log4j源码例子,可供大家学习log4j,简单实用易学,eclipse环境,哈哈。

    log4j使用详细方法

    log4j详细配置方法加例子和说明,肯定一看即会

    Appfuse教程Appfuse开发.pdf

     它最大的价值就是为我们提供了一个Web开发的新的方式和思路,尽管这些技术在国外都已进很流行了,但在国内能够将Hibernate、 Struts、Spring、DBUnit、Ant、Log4J、Struts Menu、Xdoclet、SiteMesh、Velocity、...

    新版Android开发教程.rar

    四频 (850 , 900 , 1800 , 1900) ;支持 3G , 802.11b 和 802.11g 。----------------------------------- Android 编程基础 5 互联网 支持 HTTP 、 WAP Push 和 xHTML ;支持 POP 、 IMAP 、 SMTP ,以及 AOL ...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part4

    3.6.4 dom4j和名称空间 98 3.7 小结 99 第4章 xsl转换 101 4.1 xslt概述 101 4.2 xalan处理器 105 4.3 模板规则 106 4.4 [xsl:apply-templates]元素 107 4.5 [xsl:value-of]元素 108 4.6 [xsl:for-each]元素...

    ecshop开发教程资料大全

    2.2. 链接模板文件使用例子.....................................................................................................................6 2.3. 模板文件结构..........................................

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part2

    3.6.4 dom4j和名称空间 98 3.7 小结 99 第4章 xsl转换 101 4.1 xslt概述 101 4.2 xalan处理器 105 4.3 模板规则 106 4.4 [xsl:apply-templates]元素 107 4.5 [xsl:value-of]元素 108 4.6 [xsl:for-each]元素...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part5

    3.6.4 dom4j和名称空间 98 3.7 小结 99 第4章 xsl转换 101 4.1 xslt概述 101 4.2 xalan处理器 105 4.3 模板规则 106 4.4 [xsl:apply-templates]元素 107 4.5 [xsl:value-of]元素 108 4.6 [xsl:for-each]元素...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part3

    3.6.4 dom4j和名称空间 98 3.7 小结 99 第4章 xsl转换 101 4.1 xslt概述 101 4.2 xalan处理器 105 4.3 模板规则 106 4.4 [xsl:apply-templates]元素 107 4.5 [xsl:value-of]元素 108 4.6 [xsl:for-each]元素...

    NSIS用户手册(中文版)

    第二章: 教程: 基础知识 介绍 脚本文件 脚本结构 安装程序属性 页面 区段 函数 脚本的工作方式 逻辑代码结构 变量 调试脚本 脚本的执行 编译器命令 编译器 新式用户界面(Modern UI) 插件 更多 第...

    MySQL 5.1参考手册

    3.6. 常用查询的例子 3.6.1. 列的最大值 3.6.2. 拥有某个列的最大值的行 3.6.3. 列的最大值:按组 3.6.4. 拥有某个字段的组间最大值的行 3.6.5. 使用用户变量 3.6.6. 使用外键 3.6.7. 根据两个键搜索 3.6.8. 根据天...

    Maven权威指南 很精典的学习教程,比ANT更好用

    下载本章的例子 3.2. 创建一个简单的项目 3.3. 构建一个简单的项目 3.4. 简单的项目对象模型 (Project Object Model) 3.5. 核心概念 3.5.1. Maven插件和目标 (Plugins and Goals) 3.5.2. Maven生命周期 ...

    网管教程 从入门到精通软件篇.txt

    网管教程 从入门到精通软件篇 ★一。★详细的xp修复控制台命令和用法!!! 放入xp(2000)的光盘,安装时候选R,修复! Windows XP(包括 Windows 2000)的控制台命令是在系统出现一些意外情况下的一种非常有效的...

    如何编写批处理文件批处理文件批处理文件

    简明批处理教程22009年10月20日 星期二 下午 05:35 最近对于批处理技术的探讨比较热,也有不少好的批处理程序发布,但是如果没有一定的相关知识恐怕不容易看懂和理解这些批处理文件,也就更谈不上自己动手编写了,古...

    MySQL5.1参考手册官方简体中文版

    3.6. 常用查询的例子 3.6.1. 列的最大值 3.6.2. 拥有某个列的最大值的行 3.6.3. 列的最大值:按组 3.6.4. 拥有某个字段的组间最大值的行 3.6.5. 使用用户变量 3.6.6. 使用外键 3.6.7. 根据两个键搜索 3.6.8. 根据天...

    mysql官方中文参考手册

    3.6. 常用查询的例子 3.6.1. 列的最大值 3.6.2. 拥有某个列的最大值的行 3.6.3. 列的最大值:按组 3.6.4. 拥有某个字段的组间最大值的行 3.6.5. 使用用户变量 3.6.6. 使用外键 3.6.7. 根据两个键搜索 3.6.8. 根据天...

    MySQL 5.1参考手册 (中文版)

    3.6. 常用查询的例子 3.6.1. 列的最大值 3.6.2. 拥有某个列的最大值的行 3.6.3. 列的最大值:按组 3.6.4. 拥有某个字段的组间最大值的行 3.6.5. 使用用户变量 3.6.6. 使用外键 3.6.7. 根据两个键搜索 3.6.8. 根据天...

    MYSQL中文手册

    3.6. 常用查询的例子 3.6.1. 列的最大值 3.6.2. 拥有某个列的最大值的行 3.6.3. 列的最大值:按组 3.6.4. 拥有某个字段的组间最大值的行 3.6.5. 使用用户变量 3.6.6. 使用外键 3.6.7. 根据两个键搜索 3.6.8....

    MySQL 5.1参考手册中文版

    3.6. 常用查询的例子 3.6.1. 列的最大值 3.6.2. 拥有某个列的最大值的行 3.6.3. 列的最大值:按组 3.6.4. 拥有某个字段的组间最大值的行 3.6.5. 使用用户变量 3.6.6. 使用外键 3.6.7. 根据两个键搜索 3.6.8....

Global site tag (gtag.js) - Google Analytics