- 浏览: 930824 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (445)
- 备忘 (0)
- java基础 (28)
- jsp (15)
- css (4)
- javascript (30)
- struts (7)
- servlet (2)
- struts2 (7)
- jdbc (16)
- hibernate (22)
- ibatis (0)
- jpa (1)
- spring (17)
- spring定时任务 (8)
- 整合开发 (12)
- JavaArticle (0)
- php (6)
- velocity (2)
- mysql (19)
- sqlserver (52)
- oracle (23)
- lucene (49)
- ajax (13)
- dwr (5)
- JFreeChart (1)
- service (14)
- tools (18)
- c#基础 (20)
- 程序安全 (0)
- 学习网站 (1)
- 社会需求 (2)
- flash (1)
- 流媒体 (1)
- java_code (1)
- htmlparser (1)
- 速动画教程 (5)
- 设计模式 (1)
- xml操作 (2)
- uml操作 (4)
- 测试 (1)
- linux (8)
- 版本控制 (4)
- 服务器 (12)
- 安全 (6)
- 美工 (2)
最新评论
-
Zhang_amao:
我想问一下, 你用的lucene版本和highligher的版 ...
使用Lucene的Highlighter实现文件摘要的自动提取 -
wangmengfanwangzhi:
博主,你的QQ是什么啊?有关于lucene的问题想要请教啊~~ ...
Lucene下载及测试 -
cutesunshineriver:
讲得很好,理解起来很顺,对个人学习的帮助性很大,谢谢博主。
velocity入门一 -
libin2722:
我这里有一个任务调度,在晚上3点时候会自动将数据库中某表的数据 ...
Lucene-2.2.0 源代码阅读学习(16) -
greatwqs:
java -cp $JVM_ARGS $classpath ...
java的cp命令
Log4j实在是很熟悉,几乎所有的Java项目都用它啊。但是我确一直没有搞明白。终于有一天我受不了了,定下心去看了一把文档,才两个小时,我终于搞明白了。一般情况下Log4j总是和Apache Commons-logging一起用的,我也就一起介绍吧。多了个东西不是更麻烦,而是更简单!
<[if !supportLists]>一、<[endif]>Log4j的简单思想
Log4j真的很简单,简单到令人发指的地步。不是要记录日志吗?那就给你一个Log,然后你用Log来写东西就行了,先来一个完整类示例:
package test;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class 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属性是在哪里定义的呢?
<[if !supportLists]>二、<[endif]>常见的配置文件
虽然可以用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的级别最高啊。
<[if !supportLists]>三、<[endif]>部署
别怕,这可不是部署Tomcat。把log4j的包和commons-logging的包(加在一起才两个)放到classpath下面。然后把配置文件保存为log4j.properties,也放在classpath下面(如果用Eclipse的话,放在src目录下即可)。然后你就可以跑了。
发表评论
-
传递中文参数
2012-07-27 11:12 975传递: URLEncoder.encode(&q ... -
java的cp命令
2010-07-27 11:21 5503-cp 参数后面是类路径,是指定给解释器到哪里找到你的.cla ... -
java.util.ConcurrentModificationException 解决办法
2010-07-12 15:01 1012今天在项目的中有一个需求,需要在一个Set类型的集合中删除满足 ... -
java多线程之 wait(),notify(),notifyAll()
2009-11-10 20:53 1375wait(),notify(),notifyAll()不属于T ... -
什么是XFire
2009-10-08 14:16 1277XFire 是 codeHaus 组织提供的一个开源框架,它构 ... -
jbpm是什么
2009-10-08 14:15 2141jBPM是一种基于J2EE的轻量级工作流管理系统,是JBoss ... -
java.util.Date和java.sql.Date的区别及应用
2009-09-30 20:08 1971java.util.Date 就是在除了SQL语句的情况下面 ... -
JAVA排序汇总
2009-09-14 22:16 901package com.softeem.jbs.lesson4 ... -
java随机数
2009-07-12 19:04 4639java.util.Random类来产生一 ... -
使用sunjce加密解密问题解决
2009-07-01 11:16 3330最近在做开发的时候遇到要对用户输入进行加密,上网搜索了一下ja ... -
加密处理问题
2009-07-01 10:50 850/** * VDSP自己的一个摘要算法 * @para ... -
Logger.getLogger和 LogFactory.getLog
2009-07-01 08:56 2625Logger来自log4j自己的包 ... -
关于权限设计
2009-06-15 17:12 1452权限设计通常包括数据 ... -
java读取配置文件的几种方法
2009-06-10 10:15 821在现实工作中,我们常常需要保存一些系统配置信息,大家一般都会选 ... -
对数据表中大字段的处理方式
2009-06-09 09:43 1099在数据库中,经常需要用到大字段类型,如oracle中long/ ... -
java错误
2009-06-02 21:47 1111错误警告: 2008-9-27 10:55:26 org.a ... -
判断一个字符是否是汉字
2009-05-10 15:03 1779String str = "中国chin受到腐蚀的 ... -
标准规范--方法注释
2009-03-04 14:24 1511/** * Created by IntelliJ IDEA. ... -
IDE下载地址
2009-03-03 23:13 1235Netbeans6.0beta2下载地址:http://dlc ... -
jdk配置的错误
2009-02-02 10:09 1083今天在配置jdk的时候, CLASSPATH的值末尾出现少了逗 ...
相关推荐
### Log4j 最简入门详解 #### 一、Log4j简介及基本概念 Log4j 是一个由 Apache 提供的开源项目,用于为 Java 应用程序提供灵活且强大的日志记录功能。由于其易用性和灵活性,Log4j 成为了 Java 开发者们非常熟悉的...
### Log4J 最简入门详解 #### 一、Log4J简介与基本概念 Log4J是一款非常流行的Java日志框架,由Apache软件基金会提供。它可以帮助开发者在应用程序中记录日志信息,这对于调试和维护应用程序来说至关重要。本文将...
本篇文章将深入探讨Log4j的入门知识和核心特性。 ### 1. Log4j简介 Log4j是基于Java的日志框架,最初由Ceki Gülcü设计,旨在提供灵活且高效的日志记录解决方案。Log4j提供了丰富的配置选项,可以控制日志信息的...
### Log4j从入门到精通知识点详述 #### 1. Log4j简介 Log4j 是 Apache 软件基金会旗下的一个开源项目,它是一个用于 Java 的日志记录工具。通过使用 Log4j,开发者可以轻松地在 Java 应用程序中实现日志功能,不仅...
### Log4j入门详解 #### 1. Log4j简介 Log4j是Apache软件基金会下的一个开源项目,它提供了一种强大且灵活的方式来管理和控制应用程序的日志记录。相较于简单的打印语句,Log4j提供了更为高级的功能,比如能够根据...
**标题:“Log4j2使用入门”** **描述:** 这篇博客主要介绍了如何开始使用Log4j2,Log4j2是Apache的一个开源日志框架,它提供了灵活的日志记录功能,比其前一代Log4j更加高效和功能强大。通过学习Log4j2,开发者...
### log4j从入门到详解 #### 1. Log4j简介 Log4j是一款由Apache组织提供的开源日志组件,被广泛应用于Java应用程序中。它可以帮助开发者在应用程序中记录日志信息,这对于调试程序、追踪错误以及进行系统监控等...
### Log4j从入门到详解知识点汇总 #### 1. Log4j简介 Log4j是Apache的一个开源项目,主要用于实现日志记录功能。通过使用Log4j,开发者可以非常方便地控制日志信息的输出目的地(如控制台、文件等)、每条日志的...
### Log4j2 用户指南知识点概述 #### 1.1 欢迎使用 Log4j2! ##### 1.1.1 引言 几乎每一个大型应用都有自己的日志或跟踪 API。根据这一规则,E.U.SEMPER 项目决定在 1996 年初开发自己的追踪 API。经过无数次的...
### Log4j 入门与详解 #### 一、Log4j简介 Log4j是Apache组织提供的一个开源日志框架,它可以帮助开发者轻松地在应用程序中实现日志记录功能。传统的日志记录方式通常是在代码中直接使用`System.out.println()`等...
**四、Log4j与其他日志框架的比较** Log4j在Java日志领域有很高的市场份额,但它并非唯一的选择。其他常见的日志框架包括Logback(由Log4j的作者设计的替代品)和Java Util Logging (JUL)。Log4j因其丰富的功能集、...
#### 四、Log4j的使用 在代码中使用Log4j非常简单,只需要通过`LogFactory.getLog()`方法获取对应的Logger实例即可。例如: ```java protected final Log log = LogFactory.getLog(getClass()); if (log....
### Log4j入门指南知识点详解 #### 一、引言 在软件开发过程中,日志(Log)记录是一项不可或缺的功能。良好的日志管理不仅能帮助开发者快速定位问题所在,还能为后期的系统维护提供便利。本篇内容主要围绕Log4j进行...
**Java学习Log4j详细文档和入门工程** 在Java编程中,日志记录是一个至关重要的环节,它能够帮助开发者跟踪程序运行状态,定位错误和异常,优化性能。Log4j是Apache组织提供的一款广泛使用的开源日志框架,适用于...
通过上述步骤,我们可以完成Log4j的快速入门。实际上,Log4j的功能远不止如此,它还支持多种高级特性,比如按文件大小切割日志文件、异步日志记录等,以适应更复杂的应用场景。对于想深入了解Log4j的开发者来说,...
**Log4j 入门程序详解** Log4j 是 Apache 提供的一款强大的日志记录工具,广泛应用于 Java 开发环境中。它提供了灵活的日志配置,允许开发者根据需求选择不同的输出级别,如DEBUG、INFO、WARN、ERROR 和 FATAL,...
【Log4j入门学习笔记】 Log4j是一个广泛使用的Java日志框架,旨在解决程序开发中日志记录的复杂性和可维护性问题。它提供了一种灵活的方式来控制日志信息的输出格式、输出级别和输出位置,使得在调试、监控和故障...