`
wandejun1012
  • 浏览: 2719803 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

log4j从无到有构造全过程

 
阅读更多

1、将log4j的2个jar包拷贝进eclipse的项目中,将添加进build path中。

jar包分别如下:commons-logging、log4j-1.2.8.jar。

 

2、将log4j.xml文件或者log4j.properties文件添加进项目中,一般是新建一个文件夹conf,然后将log4j.xml文件添加进来。我用eclipse swing做时并未导入log4j.dtd文件。并未出现不正常的情况。

 

3、下面要对引进的Log4j.xml进行配置。具体参见:

http://wandejun1012.iteye.com/admin/blogs/1402259

 

4、特别注意的是,要在程序中对xml文件的引入,否则会出现如下错误:

 

log4j:WARN Please initialize the log4j system properly.

 解决办法是:1)、对于log4j.properties文件,用PropertyConfigurator.configure("E:/study/log4j/log4j.properties");//加载.properties文件

2)、对于log4j.xml文件:

DOMConfigurator.configure("E:/study/log4j/log4j.xml");//加载.xml文件

具体参见如下例子:

 

package test;

import org.apache.log4j.Logger;
import org.apache.log4j.xml.DOMConfigurator;

public class TestLog4j {

	private Logger logger;
	public TestLog4j(){
		DOMConfigurator.configure("conf/log4j.xml");//加载.xml文件
		
		logger=Logger.getLogger(TestLog4j.class.getName());
		logger.info("gogogo");
		logger.debug("hi");
		System.out.println("I just print");
	}
	public static void main(String[] args) {
		new TestLog4j();
	}

}

 

 

ps:如果是放在src的根目录下,则不需要此初始化log4j的过程。

 

5、级别分为ALL < DEBUG < INFO < WARN <error,如果设置级别为INFO,则优先级大于等于INFO级别(如:INFO、WARN、ERROR)的日志信息将可以被输出,小于该级别的如:DEBUG将不会被输出。

  level : 是日志记录的优先级,分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定义的级别。Log4j建议只使用四个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG。通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。比如在这里定 义了INFO级别,则应用程序中所有DEBUG级别的日志信息将不被打印出来。

 

 

6、在程序里面调用Logger类即可。详情见如下:

 

private Logger logger=Logger.getLogger(TestLog4j.class.getName());

 

TestLog4j.class.getName()这个即是“类名”,可以用任何一个动态的类名,或者用Log4j.xml里面设置的类名,如下面所示的result :

 

  <logger name="result" additivity="false"> 
    <level value ="info"/>
    <appender-ref ref="InfoAppender"/>
  </logger> 

 

 

7、log4j官方文档:http://logging.apache.org/log4j/1.2/manual.html

 

 

 ----------------------------------------------------------------------------------------------

注意到:在web工程中,只需要引入log4j1.x.jar, 以及common-logging.jar就可以了,另外log4j.properties放在src里面就行了,不需要在web.xml中引入log4j的位置。

分享到:
评论

相关推荐

    Javamail

    在JavaMail应用中,合理的日志配置可以帮助我们跟踪邮件发送的全过程,包括成功发送的邮件、失败的原因以及可能的错误堆栈信息。 在使用JavaMail API时,开发者需要注意以下几个关键知识点: 1. **Session对象**:...

    lombok-plugin-0.25-2017.3.zip

    此外,Lombok还提供了其他高级功能,如`@NonNull`用于标记非空字段,`@Builder`用于构建复杂的对象,以及`@Synchronized`和`@Log`家族注解(如`@Log4j`、`@Slf4j`等)为类提供日志记录支持。 总的来说,Lombok插件...

    计算机知识

    汉字从输入到打印全过程中涉及的编码包括输入码、机内码、字形码等。处理过程主要包括: 1. 用户通过键盘输入汉字拼音或其他编码,转化为输入码; 2. 输入码转换为机内码,即计算机内部存储和处理汉字的编码,一般为...

    hibernate_reference使用指南全

    Hibernate 使用日志框架(如 Log4j、SLF4J 等)来记录运行时信息。 - **3.6 实现 NamingStrategy** 说明如何定制 Hibernate 的命名策略,以控制生成的 SQL 语句中的表名和列名。 - **3.7 XML 配置文件** 介绍...

    hibernate入门教程

    slf4j-log4j12-1.x.y.jar ... ``` 这里我们仅展示了部分库文件,完整的列表可以参考 Hibernate 发布版本中的 `README.md` 文件。 ##### 2.2 实体类定义 接下来,我们定义一个实体类,用于表示我们想要存储的...

    TypeScript中文入门指南详解案例教程

    TypeScript 已经被广泛应用于各种规模的项目中,从小型个人项目到大型企业级应用。许多知名公司,包括 Google、Microsoft、Angular 团队等,都在使用 TypeScript 进行开发。随着 TypeScript 社区的不断壮大和技术的...

    北工大2001年数据结构试题

    #### 四、(15分)循环链表a和b的结点值为字母,其中a表非递减有序,下面的程序欲构造一个递增有序的循环连表c,其中结点的值为同时在a,b两链表中出现的字母,且c中字母不重复,请补上程序中空缺的部分,并估计算法...

    甘肃省会宁县第学2018 2019学年高一数学上学期第二次月考试题(无答案).doc

    几何体的描述需要根据三视图来判断,这里涉及到几何体的构造和性质。 17-22题属于解答题,需要进行完整的解题步骤,包括逻辑推理、公式应用、几何作图和计算等,这些题目涵盖了集合论、函数性质、空间几何、立体...

    jpcap数据包捕获

    - **ChangeLog**:记录了jpcap的历史版本变更和更新内容,有助于理解库的演化历程和修复的bug。 - **COPYING**:通常包含开源许可信息,规定了使用jpcap的法律条款。 - **README**:通常包含项目的简介、安装指南和...

    ACM模板(吉林大学)

    - DAG(有向无环图)是一种重要的图模型,在实际应用中有广泛的用途。本部分介绍了如何在DAG上进行深度优先搜索(DFS)并标记访问过的节点。这种标记可以帮助我们识别图中的各种属性,如是否存在环等。 - **无向图...

    java私塾学习笔记整理

    ### Java私塾学习笔记整理 #### 第一章:Java入门 ...以上内容涵盖了Java基础知识的重要方面,从语言基础到高级特性,以及常见的开发技术和工具,帮助读者全面了解Java编程的基础知识和技术要点。

    PHP基础教程 是一个比较有价值的PHP新手教程!

    可能你已经注意到,变量都有一个美元符号($)的前缀。所有变量都是局部变量,为了使得定义的函数中可以使用外部变量,使用global语句。而你要将该变量的作用范围限制在该函数之内,使用static语句。 $g_var = 1 ; /...

    新版Android开发教程.rar

    � A ndroid 在设计初期就考虑了与现其有业务的融合,改变以往从计算机为主改成从手机使用为导向。新 生应用如:G oogle 地图及其衍生应用、 GMail 、 GTalk 等。 � GPS 卫星导航功能,手机照相, MP3 ,蓝芽等均...

Global site tag (gtag.js) - Google Analytics