log4j配置文件的位置应该放在class文件的根目录下(或者源文件根根目录下),不要放在子目录下,否则会由于找不到log4j配置文件而出错.
一个quartz用的log4j配置文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="default" class="org.apache.log4j.ConsoleAppender">
<param name="target" value="System.out"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="[%p] %d{dd MMM hh:mm:ss.SSS aa} %t [%c]%n%m%n%n"/>
</layout>
</appender>
<logger name="org.quartz">
<level value="debug" />
</logger>
<root>
<level value="debug" />
<appender-ref ref="default" />
</root>
</log4j:configuration>
#DEBUG用来定义输出级别,比DEBUG高的都可以输出,后面的stdout,File为输出日志的输出地方
log4j.rootLogger=DEBUG, stdout,FILE
#定义stdout输出的格式
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%c{1} - %m%n
#定义文件输出的格式
log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=d:\\log.txt
log4j.appender.FILE.Append=true
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern=[send mail info] %d - %c -%-4r [%t] %-5p %c %x - %m%n
#其中,Log4j提供的appender有以下几种:
#org.apache.log4j.ConsoleAppender(控制台),
#org.apache.log4j.FileAppender(文件),
#org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
#org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),
#org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
#其中,Log4j提供的layout有以下几种:
#org.apache.log4j.HTMLLayout(以HTML表格形式布局),
#org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
#org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
#org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
# 下面是步骤,共10步
#1 定义了两个输出端
#log4j.rootLogger = debug, A1, A2
#2 定义A1输出到控制器
#log4j.appender.A1 = org.apache.log4j.ConsoleAppender
#3 定义A1的布局模式为PatternLayout
#log4j.appender.A1.layout = org.apache.log4j.PatternLayout
#4 定义A1的输出格式
#log4j.appender.A1.layout.ConversionPattern = %-4r [%t] %-5p %c - %m%n
#5 定义A2输出到文件
#log4j.appender.A2 = org.apache.log4j.RollingFileAppender
#6 定义A2要输出到哪一个文件
#log4j.appender.A2.File = D:\\hello.log
#7 定义A2的输出文件的最大长度
#log4j.appender.A2.MaxFileSize = 1KB
#8 定义A2的备份文件数
#log4j.appender.A2.MaxBackupIndex = 3
#9 定义A2的布局模式为PatternLayout
#log4j.appender.A2.layout = org.apache.log4j.PatternLayout
#10 定义A2的输出格式
#log4j.appender.A2.layout.ConversionPattern = %d{yyyy-MM-dd hh:mm:ss}:%p %t %c
#log4j.appender.R=org.apache.log4j.RollingFileAppender //指定以文件的方式输出日志
#log4j.appender.R.File=c:/sys.html //文件位置
#log4j.appender.R.MaxFileSize=500KB //文件最大尺寸
#log4j.appender.R.MaxBackupIndex=1 //备份数
#log4j.appender.R.layout=org.apache.log4j.HTMLLayout //文件的格式为Html格式
#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
#输出格式
#%m 输出代码中指定的消息
#%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
#%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 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java:10)
#一个教程网址:http://www.solol.org/technologic/java/j-log4j/