在java web 项目开发中将log 信息和hibernate 的hql/sql语句输出到文件和控制台上

其中下面是我的配置文件的内容


log4j.rootLogger=INFO,file,console
 #设置 file 

 log4j.appender.file=org.apache.log4j.RollingFileAppender 

 log4j.appender.file.File=${catalina.home}/logs/log.log 

 log4j.appender.file.MaxFileSize=500KB 

 log4j.appender.file.MaxBackupIndex=5 

 log4j.appender.file.layout=org.apache.log4j.PatternLayout 

 log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c] [%p] - %m%n 

 # 设置 console 

 log4j.appender.console=org.apache.log4j.ConsoleAppender 

 log4j.appender.console.Target=System.out 

 log4j.appender.console.layout=org.apache.log4j.PatternLayout 

 log4j.appender.console.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %5p %c{1}:%L - %m%n 

 ##Hibernate begin##  

 log4j.logger.org.hibernate=info 

 log4j.logger.org.hibernate.SQL=debug 

 log4j.logger.org.hibernate.HQL=debug 

 ##这样hibernate的SQL和HQL查询都会打印到控制台和日志文件 

##Hibernate end##



文件说明: 
log4j.rootLogger: 
根logger 
log4j.rootLogger = [ level ] , appenderName, appenderName, … 
Level 描述 
ALL 各级包括自定义级别 
DEBUG 指定细粒度信息事件是最有用的应用程序调试 
ERROR 错误事件可能仍然允许应用程序继续运行 
FATAL 指定非常严重的错误事件,这可能导致应用程序中止 
INFO 指定能够突出在粗粒度级别的应用程序运行情况的信息的消息 
OFF 这是最高等级,为了关闭日志记录 
TRACE 指定细粒度比DEBUG更低的信息事件 
WARN 指定具有潜在危害的情况 
ALL < DEBUG < INFO < WARN < ERROR < FATAL < OFF 
其中常用的 debug < info<warn<error  这四个

log4j.rootLogger=INFO,file,console
info : 日志级别  其中所有小于info级别的都不输出
file, console 日志输出目的的  下面需要对他们进行设置   appenderName 可以随便取  不过要有意义  
#RollingFileAppender  appender 类型  这里是指输出到某个文件  还有  ConsoleAppender 输出到控制台   
JDBCAppender 输出到数据库  还有好多 具体的可以看  http://www.yiibai.com/log4j/log4j_configuration.html
log4j.appender.file=org.apache.log4j.RollingFileAppender
#日志文件路径
log4j.appender.file.File=${catalina.home}/logs/log.log# 文件大小
 log4j.appender.file.MaxFileSize=500KB#备份文件个数
log4j.appender.file.MaxBackupIndex=5
#layout 布局类型  其中log4j提供4种布局. 
#org.apache.log4j.HTMLLayout(以HTML表格形式布局)
 #org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
 #org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
 #org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息) log4j.appender.file.layout=org.apache.log4j.PatternLayout 
#转换模式   %d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c] [%p] - %m%n   
# %d 时间   %t 输出生成的日志记录事件的线程的名称 %c 日志类名   %p  log日志级别  %m%n 换行
 log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c] [%p] - %m%n

================跟新============================

threshold :  全局过滤器,日志的最低输出级别  它将把低于所设置的level的信息过滤不显示   一般用它来实现将不同级别的日志信息写入不同的文件

看个例子:

log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.Threshold=WARN
 log4j.appender.file.File=${catalina.home}/logs/log_warn.log
 log4j.appender.file.MaxFileSize=500KB
 log4j.appender.file.MaxBackupIndex=5
 log4j.appender.file.layout=org.apache.log4j.PatternLayout
 log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c] [%p] - %m%n

在这里将Threshold的值 设为了 warn  那么他在输出日志的时候会将 debug 和info 屏蔽掉(debug<info<warn) 

具体参照: http://www.yiibai.com/log4j/