log4j.properties 使用说明 -凯发k8网页登录

debug - 天道酬勤

   :: 凯发k8网页登录首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  671 随笔 :: 6 文章 :: 256 评论 :: 0 trackbacks
log4j.properties 使用
一.参数意义说明
输出级别的种类
error、warn、info、debug
error 为严重错误 主要是程序的错误
warn 为一般警告,比如session丢失
info 为一般要显示的信息,比如登录登出
debug 为程序的调试信息
配置日志信息输出目的地
log4j.appender.appendername = fully.qualified.name.of.appender.class
1.org.apache.log4j.consoleappender(控制台)
2.org.apache.log4j.fileappender(文件)
3.org.apache.log4j.dailyrollingfileappender(每天产生一个日志文件)
4.org.apache.log4j.rollingfileappender(文件大小到达指定尺寸的时候产生一个新的文件)
5.org.apache.log4j.writerappender(将日志信息以流格式发送到任意指定的地方)
配置日志信息的格式
log4j.appender.appendername.layout = fully.qualified.name.of.layout.class
1.org.apache.log4j.htmllayout(以html表格形式布局),
2.org.apache.log4j.patternlayout(可以灵活地指定布局模式),
3.org.apache.log4j.simplelayout(包含日志信息的级别和信息字符串),
4.org.apache.log4j.ttcclayout(包含日志产生的时间、线程、类别等等信息)
控制台选项
threshold=debug:指定日志消息的输出最低层次。
immediateflush=true:默认值是true,意谓着所有的消息都会被立即输出。
target=system.err:默认情况下是:system.out,指定输出控制台
fileappender 选项
threshold=debuf:指定日志消息的输出最低层次。
immediateflush=true:默认值是true,意谓着所有的消息都会被立即输出。
file=mylog.txt:指定消息输出到mylog.txt文件。
append=false:默认值是true,即将消息增加到指定文件中,false指将消息覆盖指定的文件内容。
rollingfileappender 选项
threshold=debug:指定日志消息的输出最低层次。
immediateflush=true:默认值是true,意谓着所有的消息都会被立即输出。
file=mylog.txt:指定消息输出到mylog.txt文件。
append=false:默认值是true,即将消息增加到指定文件中,false指将消息覆盖指定的文件内容。
maxfilesize=100kb: 后缀可以是kb, mb 或者是 gb. 在日志文件到达该大小时,将会自动滚动,即将原来的内容移到mylog.log.1文件。
maxbackupindex=2:指定可以产生的滚动文件的最大数。
log4j.appender.a1.layout.conversionpattern=%-4r %-5p %d{yyyy-mm-dd hh:mm:sss} %c %m%n
日志信息格式中几个符号所代表的含义:
 -x号: x信息输出时左对齐;
 %p: 输出日志信息优先级,即debug,info,warn,error,fatal,
 %d: 输出日志时间点的日期或时间,默认格式为iso8601,也可以在其后指定格式,比如:%d{yyy mmm dd hh:mm:ss,sss},输出类似:2002年10月18日 22:10:28,921
 %r: 输出自应用启动到输出该log信息耗费的毫秒数
 %c: 输出日志信息所属的类目,通常就是所在类的全名
 %t: 输出产生该日志事件的线程名
 %l: 输出日志事件的发生位置,相当于%c.%m(%f:%l)的组合,包括类目名、发生的线程,以及在代码中的行数。举例:testlog4.main (testlog4.java:10)
 %x: 输出和当前线程相关联的ndc(嵌套诊断环境),尤其用到像java servlets这样的多客户多线程的应用中。
 %%: 输出一个"%"字符
 %f: 输出日志消息产生时所在的文件名称
 %l: 输出代码中的行号
 %m: 输出代码中指定的消息,产生的日志具体信息
 %n: 输出一个回车换行符,windows平台为"\r\n",unix平台为"\n"输出日志信息换行
 可以在%与模式字符之间加上修饰符来控制其最小宽度、最大宽度、和文本的对齐方式。如:
 1) c:指定输出category的名称,最小的宽度是20,如果category的名称小于20的话,默认的情况下右对齐。
 2)%-20c:指定输出category的名称,最小的宽度是20,如果category的名称小于20的话,"-"号指定左对齐。
 3)%.30c:指定输出category的名称,最大的宽度是30,如果category的名称大于30的话,就会将左边多出的字符截掉,但小于30的话也不会有空格。
 4) .30c:如果category的名称小于20就补空格,并且右对齐,如果其名称长于30字符,就从左边较远输出的字符截掉。
二.文件配置sample1
log4j.rootlogger=debug,a1,r
#log4j.rootlogger=info,a1,r
# consoleappender 输出
log4j.appender.a1=org.apache.log4j.consoleappender
log4j.appender.a1.layout=org.apache.log4j.patternlayout
log4j.appender.a1.layout.conversionpattern=%-d{yyyy-mm-dd hh:mm:ss,sss} [%c]-[%p] %m%n
# file 输出 一天一个文件,输出路径可以定制,一般在根路径下
log4j.appender.r=org.apache.log4j.dailyrollingfileappender
log4j.appender.r.file=blog_log.txt
log4j.appender.r.maxfilesize=500kb
log4j.appender.r.maxbackupindex=10
log4j.appender.r.layout=org.apache.log4j.patternlayout
log4j.appender.r.layout.conversionpattern=%d{yyyy-mm-dd hh:mm:ss,sss} [%t] [%c] [%p] - %m%n
文件配置sample2
下面给出的log4j配置文件实现了输出到控制台,文件,回滚文件,发送日志邮件,输出到数据库日志表,自定义标签等全套功能。
log4j.rootlogger=debug,console,a1,im
#debug,console,file,rolling_file,mail,database
log4j.addivity.org.apache=true
###################
# console appender
###################
log4j.appender.console=org.apache.log4j.consoleappender
log4j.appender.threshold=debug
log4j.appender.console.target=system.out
log4j.appender.console.layout=org.apache.log4j.patternlayout
log4j.appender.console.layout.conversionpattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
#log4j.appender.console.layout.conversionpattern=[start]%d{date}[date]%n%p[priority]%n%x[ndc]%n%t[thread] n%c[category]%n%m[message]%n%n
#####################
# file appender
#####################
log4j.appender.file=org.apache.log4j.fileappender
log4j.appender.file.file=file.log
log4j.appender.file.append=false
log4j.appender.file.layout=org.apache.log4j.patternlayout
log4j.appender.file.layout.conversionpattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
# use this layout for logfactor 5 analysis
########################
# rolling file
########################
log4j.appender.rolling_file=org.apache.log4j.rollingfileappender
log4j.appender.rolling_file.threshold=error
log4j.appender.rolling_file.file=rolling.log
log4j.appender.rolling_file.append=true
log4j.appender.rolling_file.maxfilesize=10kb
log4j.appender.rolling_file.maxbackupindex=1
log4j.appender.rolling_file.layout=org.apache.log4j.patternlayout
log4j.appender.rolling_file.layout.conversionpattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
####################
# socket appender
####################
log4j.appender.socket=org.apache.log4j.rollingfileappender
log4j.appender.socket.remotehost=localhost
log4j.appender.socket.port=5001
log4j.appender.socket.locationinfo=true
# set up for log facter 5
log4j.appender.socket.layout=org.apache.log4j.patternlayout
log4j.appender.socet.layout.conversionpattern=[start]%d{date}[date]%n%p[priority]%n%x[ndc]%n%t[thread]%n%c[category]%n%m[message]%n%n
########################
# log factor 5 appender
########################
log4j.appender.lf5_appender=org.apache.log4j.lf5.lf5appender
log4j.appender.lf5_appender.maxnumberofrecords=2000
########################
# smtp appender
#######################
log4j.appender.mail=org.apache.log4j.net.smtpappender
log4j.appender.mail.threshold=fatal
log4j.appender.mail.buffersize=10

log4j.appender.mail.smtphost=mail.hollycrm.com
log4j.appender.mail.subject=log4j message

log4j.appender.mail.layout=org.apache.log4j.patternlayout
log4j.appender.mail.layout.conversionpattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
########################
# jdbc appender
#######################
log4j.appender.database=org.apache.log4j.jdbc.jdbcappender
log4j.appender.database.url=jdbc:mysql://localhost:3306/test
log4j.appender.database.driver=com.mysql.jdbc.driver
log4j.appender.database.user=root
log4j.appender.database.password=
log4j.appender.database.sql=insert into log4j (message) values ('[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n')
log4j.appender.database.layout=org.apache.log4j.patternlayout
log4j.appender.database.layout.conversionpattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
log4j.appender.a1=org.apache.log4j.dailyrollingfileappender
log4j.appender.a1.file=samplemessages.log4j
log4j.appender.a1.datepattern=yyyymmdd-hh'.log4j'
log4j.appender.a1.layout=org.apache.log4j.xml.xmllayout
###################
#自定义appender
###################
log4j.appender.im = net.cybercorlin.util.logger.appender.imappender
log4j.appender.im.host = mail.cybercorlin.net
log4j.appender.im.username = username
log4j.appender.im.password = password
log4j.appender.im.recipient =
log4j.appender.im.layout=org.apache.log4j.patternlayout
log4j.appender.im.layout.conversionpattern =[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
三.高级使用
实验目的:
 1.把fatal级错误写入2000nt日志
 2. warn,error,fatal级错误发送email通知管理员
 3.其他级别的错误直接在后台输出
实验步骤:
 输出到2000nt日志
 1.把log4j压缩包里的nteventlogappender.dll拷到winnt\system32目录下
 2.写配置文件log4j.properties
# 在2000系统日志输出
 log4j.logger.ntlog=fatal, a8
 # appender a8
 log4j.appender.a8=org.apache.log4j.nt.nteventlogappender
 log4j.appender.a8.source=javatest
 log4j.appender.a8.layout=org.apache.log4j.patternlayout
 log4j.appender.a8.layout.conversionpattern=%-4r %-5p [%t] 7c %3x - %m%n
3.调用代码:
 logger logger2 = logger.getlogger("ntlog"); //要和配置文件中设置的名字相同
 logger2.debug("debug!!!");
 logger2.info("info!!!");
 logger2.warn("warn!!!");
 logger2.error("error!!!");
 //只有这个错误才会写入2000日志
 logger2.fatal("fatal!!!");
发送email通知管理员:
 1. 首先下载javamail和jaf,
 
 
 在项目中引用mail.jar和activation.jar。
 2. 写配置文件
 # 将日志发送到email
 log4j.logger.maillog=warn,a5
 #  appender a5
 log4j.appender.a5=org.apache.log4j.net.smtpappender
 log4j.appender.a5.buffersize=5
 
 
 log4j.appender.a5.subject=errorlog
 log4j.appender.a5.smtphost=smtp.263.net
 log4j.appender.a5.layout=org.apache.log4j.patternlayout
 log4j.appender.a5.layout.conversionpattern=%-4r %-5p [%t] 7c %3x - %m%n
 3.调用代码:
 //把日志发送到mail
 logger logger3 = logger.getlogger("maillog");
 logger3.warn("warn!!!");
 logger3.error("error!!!");
 logger3.fatal("fatal!!!");
在后台输出所有类别的错误:
 1. 写配置文件
 # 在后台输出
 log4j.logger.console=debug, a1
 # appender a1
 log4j.appender.a1=org.apache.log4j.consoleappender
 log4j.appender.a1.layout=org.apache.log4j.patternlayout
 log4j.appender.a1.layout.conversionpattern=%-4r %-5p [%t] 7c %3x - %m%n
 2.调用代码
 logger logger1 = logger.getlogger("console");
 logger1.debug("debug!!!");
 logger1.info("info!!!");
 logger1.warn("warn!!!");
 logger1.error("error!!!");
 logger1.fatal("fatal!!!");
--------------------------------------------------------------------
 全部配置文件:log4j.properties
 # 在后台输出
 log4j.logger.console=debug, a1
 # appender a1
 log4j.appender.a1=org.apache.log4j.consoleappender
 log4j.appender.a1.layout=org.apache.log4j.patternlayout
 log4j.appender.a1.layout.conversionpattern=%-4r %-5p [%t] 7c %3x - %m%n
# 在2000系统日志输出
 log4j.logger.ntlog=fatal, a8
 # appender a8
 log4j.appender.a8=org.apache.log4j.nt.nteventlogappender
 log4j.appender.a8.source=javatest
 log4j.appender.a8.layout=org.apache.log4j.patternlayout
 log4j.appender.a8.layout.conversionpattern=%-4r %-5p [%t] 7c %3x - %m%n
# 将日志发送到email
 log4j.logger.maillog=warn,a5
 #  appender a5
 log4j.appender.a5=org.apache.log4j.net.smtpappender
 log4j.appender.a5.buffersize=5
 
 
 log4j.appender.a5.subject=errorlog
 log4j.appender.a5.smtphost=smtp.263.net
 log4j.appender.a5.layout=org.apache.log4j.patternlayout
 log4j.appender.a5.layout.conversionpattern=%-4r %-5p [%t] 7c %3x - %m%n
全部代码:log4jtest.java
 
/*
  * 创建日期 2003-11-13
  */
 package edu.bcu.bean;
 import org.apache.log4j.*;
 //import org.apache.log4j.nt.*;
 //import org.apache.log4j.net.*;
 /**
  * @author yanxu
  */
 public class log4jtest
 {
  public static void main(string args[])
  {
   propertyconfigurator.configure("log4j.properties");
   //在后台输出
   logger logger1 = logger.getlogger("console");
   logger1.debug("debug!!!");
   logger1.info("info!!!");
   logger1.warn("warn!!!");
   logger1.error("error!!!");
   logger1.fatal("fatal!!!");
//在nt系统日志输出
   logger logger2 = logger.getlogger("ntlog");
   //nteventlogappender nla = new nteventlogappender();
   logger2.debug("debug!!!");
   logger2.info("info!!!");
   logger2.warn("warn!!!");
   logger2.error("error!!!");
   //只有这个错误才会写入2000日志
   logger2.fatal("fatal!!!");
//把日志发送到mail
   logger logger3 = logger.getlogger("maillog");
   //smtpappender sa = new smtpappender();
   logger3.warn("warn!!!");
   logger3.error("error!!!");
   logger3.fatal("fatal!!!");
  }
 }
posted on 2008-01-16 15:51 huikk 阅读(41967) 评论(0)     所属分类: java
网站地图