在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/