log4j
借鉴:http://www.blogjava.net/zJun/archive/2006/06/28/55511.html
Log4j可以控制日志信息输送的目的地是控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记录器等;也可以控制每一条日志的输出格式;
通过定义日志信息的级别,可以更加细致地控制日志的生成记录。
log4j配置文件的大概格式如下:
#配置根Logger
log4j.rootLogger = [level], appender1, appender2,…
#配置日志信息输出目的地Appender1
log4j.appender.appenderName1 = org.apache.log4j.[AppenderType]
log4j.appender.appenderName1.layout = org.apache.log4j.[LayoutType]
log4j.appender.appenderName1.layout.ConversionPattern = [pattern]
log4j.appender.appenderName1.option1 = value1
…
log4j.appender.appenderName1.optionN = valueN
#配置日志信息输出目的地Appender2
log4j.appender.appenderName2 = org.apache.log4j.[AppenderType]
log4j.appender.appenderName2.layout = org.apache.log4j.[LayoutType]
log4j.appender.appenderName2.layout.ConversionPattern = [pattern]
log4j.appender.appenderName2.option1 = value1
…
log4j.appender.appenderName2.optionN = valueN
…
[level]
是日志的输出级别。共包含5个等级。会打印出等于或高于设定等级的日志信息。
可直接配置跟logeer的日志等级,也可为每个Appender设定不同的日志等级,将不同等级的日志区分开。
FATAL 0
ERROR 3
WARN 4
INFO 6
DEBUG 7
[AppenderType]
指定了日志的输出目的地。
log4j提供的appender有以下几种:
org.apache.log4j.ConsoleAppender(控制台),
org.apache.log4j.FileAppender(文件),
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
[LayoutType]
指定日志的输出形式。有以下几种:
org.apache.log4j.HTMLLayout(以HTML表格形式布局),
org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
常用的配置例子:
### set log levels ###
log4j.rootLogger = DEBUG,console,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} [ %t:%r ] - [ %p ] %m%n
### 输出到日志文件 ###
log4j.appender.D = org.apache.log4j.RollingFileAppender ##文件大小到达指定尺寸的时候产生一个新的文件
log4j.appender.D.File = ${catalina.home}/mylogs/log.log ##文件的输出路径
log4j.appender.D.MaxFileSize = 10MB ##文件的最大尺寸
log4j.appender.D.Threshold = DEBUG ##此appender的日志级别
log4j.appender.D.layout = org.apache.log4j.PatternLayout ##表达式指定布局
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
### 保存异常信息到单独文件 ###
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender ##每日生成一个文件
log4j.appender.E.File = ${catalina.home}/mylogs/error.log ##文件输出路径
log4j.appender.E.Threshold = ERROR ##此appender的级别
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
java代码中的使用示例:
public class LoggerTest {
private Logger log = Logger.getLogger(LoggerTest.class);
public static void main(String[] args) {
log.debug("调试使用");
log.info("info及以上级别可见");
log.warn("warn及以上级别可见");
try{
//TODO
} catch(Exception e){
log.error("异常时输出此信息", e);
}
}
}
log4jdbc
借鉴:http://www.cnblogs.com/xdp-gacl/p/4081848.html
http://www.cnblogs.com/JSONBEAN/p/6363237.html
1、简介:
log4jdbc是工作在jdbc层的一个日志框架,能够在不改变原有代码的情况下,记录SQL及数据库连接执行信息。
相对于mybatis,hibernate,spring jdbc等框架将参数值用占位符标识,参数值与sql代码分离的缺点。log4jdbc可以完整的打印出可执行的完整sql。
2、依赖
使用log4jdbc需要引入log4jdbc-1.2.jar,以及依赖的相关Jar包log4j-1.2.17.jar、slf4j-api-1.6.0.jar、slf4j-log4j12-1.7.7.jar。
3、配置
在log4jdbc中定义了以下五个日志对象:
jdbc.sqlonly : 记录系统执行过的sql语句
jdbc.sqltiming : 记录sql执行的时间,可以分析耗时的sql语句
jdbc.audit : 记录除了ResultSet外的所有JDBC调用情况。一般不需要。
jdbc.resultset : 记录返回结果集信息。数据太多,一般也不用。可将执行的sql复制到plsql执行。
jdbc.connection : 记录数据库连接和释放信息,可记录当前的数据库连接数,便于诊断连接是否释放。
如上面log4j部分的“常用的配置例子”,可在log4j.rootLogger下加入如下配置:
#jdbc执行日志配置
log4j.logger.jdbc.sqlonly=INFO
log4j.logger.jdbc.sqltiming=INFO
log4j.logger.jdbc.resultset=OFF ##关闭不打印
log4j.logger.jdbc.audit=OFF ##关闭不打印
log4j.logger.jdbc.connection=ERROR ##只打印连接异常信息
4、修改jdbc配置
修改驱动和url,如下所示:
jdbc.driverClassName=net.sf.log4jdbc.DriverSpy jdbc.url=jdbc:log4jdbc:oracle:thin:@localhost:1521:orcl jdbc.username=scort jdbc.password=tiger