log4j和log4jdbc的使用

丘学海
2023-12-01

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


 类似资料: