log4j是Java开发平台中的日志管理工具,是Apache基金会的一个开源项目。它的作用能够简单的理解为在开发过程中替代system.out的功能。

1、在project中集成log4j:

(1)在官网http://logging.apache.org/log4j/2.x/download.html中下载版本号log4j-1.2.9.jar包(仅仅需加入该log4j jar包就可以)并加入到build path中

(2)改动配置文件log4j.properties,能够百度一下。这样的资源非常多,我的配置文件例如以下:

log4j.rootLogger =DEBUG,console,file,D,E #设置日志级别和日志输出目的地,级别仅仅能有一个。目的地能够由多个

log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n #warn:before write the file log.log, clear it
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.file=./log.log
log4j.appender.file.Append = false #注意:每次写文件前,清空,做试验用,默认值为true
log4j.appender.file.DatePattern='.'yyyy-MM-dd
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n
#log4j.appender.file.layout=org.apache.log4j.TTCCLayout
#org.apache.log4j.TTCCLayout do not have the property such as ConversionPattern #test output different log information to seperate file
#set the DEBUG level information output to the file debug.log
#warn:before write the file debug.log, clear it
log4j.appender.D=org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.file=./debug.log
log4j.appender.D.Append = false #注意:每次写文件前,清空,做试验用,默认值为true
log4j.appender.D.Threshold = DEBUG #仅仅有比DEBUG级别高的日志才会输出到debug.log文件里,相当于五种类型的日志都会保存到debug.log中
log4j.appender.D.DatePattern='.'yyyy-MM-dd
log4j.appender.D.layout=org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n #set the ERROR level information output to the file debug.log
#warn:before write the file error.log, clear it
log4j.appender.E=org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.file=./error.log
log4j.appender.E.Append = false #注意:每次写文件前,清空,做试验用,默认值为true
log4j.appender.E.Threshold = ERROR #仅仅有比ERROR级别高的日志才会输出到error.log文件里,相当于error.log文件仅仅保存FATAL和ERROR类型的日志
log4j.appender.E.DatePattern='.'yyyy-MM-dd
log4j.appender.E.layout=org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n

(3)优先级说明:log4j中有5种优先级,须要注意的是优先级数据越小其优先级越高(0最高。7最低),当设置某种优先级后。比其高的级别日志都会输出。比如,假设在log4j.rootLogger
=DEBUG,console,file,D,E设置的为DEBUG。则全部级别的日志都会输出,由于DEBUG级别最低。这点在实现不同级别的日志信息写到不同的文件时很重要。

FATAL 0

ERROR 3

WARN 4

INFO 6

DEBUG 7

2、log4j的初始化

在网上搜了下。发现有三种方式进行初始化:

(1)自己主动载入配置文件。这个对配置文件的存放位置有要求,我这里的是Java seproject。配置文件放在src文件夹下;若是放在project根文件夹下,载入失败,会出现例如以下错误:

log4j:WARN No appenders could be found for logger (Log4jTest).
log4j:WARN Please initialize the log4j system properly.

(2)手动载入配置文件,在main方法里利用语句(注意依据配置文件的路径自己调整):

PropertyConfigurator.configure("./log4j.properties");

(3)不用配置文件。直接在代码中设置。

关于log4j的初始化过程,有篇博客以xml格式的配置文件为例,从源代码级别上做了解释http://tiangu.iteye.com/blog/1153777

3、log4j实现不同类型的日志输出到不同的文件

这里必须设置log4j.appender.xxx.Threshold属性。仅仅有比该级别高的日志才会输出到该日志文件里。

详见上面的配置文件凝视。

Javaproject集成log4J 1.x的更多相关文章

  1. Javaproject集成log4j 2.x

    log4j2和log4j在配置文件和引入jar包上出现了不同.这里做个备忘,这里使用的版本号为apache-log4j-2.3-bin.zip. 1.apache-log4j-2.3-bin.zip下 ...

  2. SSH集成log4j日志环境[转]

    第一步:在web.xml初始化log4j <context-param> <param-name>log4jConfigLocation</param-name> ...

  3. SSH集成log4j日志环境

    第一步:在web.xml初始化log4j <context-param> <param-name>contextConfigLocation</param-name> ...

  4. Spring MVC集成Log4j

    以下示例显示如何使用Spring Web MVC框架集成LOG4J.首先使用Eclipse IDE,并按照以下步骤使用Spring Web Framework开发基于动态表单的Web应用程序: 创建一 ...

  5. springboot集成log4j

    需求: 1.springboot集成log4j 2.mybatis 打印 sql 实现: pom.xml <dependency> <groupId>org.springfra ...

  6. SpringBoot 集成Log4j、集成AOP

    集成Log4j (1)在pom.xml中添加依赖 <!--去掉springboot默认的日志--> <dependency> <groupId>org.spring ...

  7. SpringBoot集成log4j,解决log4j.properties不生效问题

    Spring Boot集成log4j其实比较简单,maven的话,在xml中增加log4j依赖就行 <dependency> <groupId>org.springframew ...

  8. (OAF)jdeveloper集成log4j并将日志输出到指定文件并写入数据库

    参考: How to configure Log4j in JDev 11g Ever wanted to use log4j in your adf project ? Well though Or ...

  9. spring 集成 log4j 配置

    在web.xml中增加如下代码: <context-param> <param-name>log4jConfigLocation</param-name> < ...

随机推荐

  1. Elasticsearch之CURL命令的HEAD

    如果只想检查一些文档是否存在,我们可以使用HEAD来替代GET方法,这样就只会返回HTTP头文件. [hadoop@master elasticsearch-]$ curl -i XHEAD http ...

  2. Kibana里No Marvel Data Found问题解决(图文详解)

    问题详情 http://192.168.80.145:5601/app/marvel#/no-data?_g=(refreshInterval:(display:'10%20seconds',paus ...

  3. JQuery:常用知识点总结

    jQuery本质上就是一个外部的js文件(jQuery.js),该文件中封装了很多js代码,实现了很多功能.并且jQuery有非常丰富的插件,大多数功能都有相应的插件解决方案.jQuery的宗旨是wr ...

  4. MyBatis ((一对多和多对一配置)实现持久化操作 之二)

    注: 此文中的实体类还是沿用上一章的Emp和Dept两个类 还是老样子,不细说 直接上代码 01.在emp.xml中  配置和Dept的多对一的相关信息 <?xml version=" ...

  5. bootstrap 字体颜色 对齐方式

    一:字体代码:作用--颜色 1..text-muted:提示--浅灰色 2..text-primary:主要--蓝色 3..text-success:成功--浅绿色 4..text-info:     ...

  6. ajax不跳转页面的快速删除操作,可添加美观样式

    以前我们讲的删除是利用嵌入php代码,跳转到另一个页面,从而降低了删除速度,但我们今天讲的利用ajax不仅可以达到不跳页面快速删除,并且能添加特效来美化页面. 上代码,我们先来做主页面 <!DO ...

  7. JS——if条件判断

    现在只说特殊情况: 1.一个变量,例如n1=null <script> var n1 = null; alert(n1);/*弹窗的值为null*/ if (n1 == null) {/* ...

  8. 用最简单的脚本完成supertab的基本功能并实现一个更加合理的功能

    supertab是vim的一个出名的插件, 相信会vim的人没几个不知道的, 我在之前的<<vim之补全1>>中首先说明的也是它, supertab实现的功能简单的说就是用ta ...

  9. 如何给PDF文件添加水印?

    在数字化媒体高速发展的今天,信息传播的速度也越来越快,人们常常会在网络上一些有趣的图片,文件,段子诸如此类的东西,人们往往会去下载或转发,但是因为一些因素,导致版权之经常上演,水印呢,其实就给你自己的 ...

  10. Python学习【第7篇】:Python之常用模块2

    hashlib,configparser,logging模块 一.常用模块二 hashlib模块 hashlib提供了常见的摘要算法,如md5和sha1等等. 那么什么是摘要算法呢?摘要算法又称为哈希 ...