Hibernate4日志打印_log

在hibernate4中,从hibernate-release-4.3.11.Final\project\etc这个目录中,我们看到了一个日志配置文件,如图:



 所以我们知道hibernate是使用log4j打印日志信息,那么接下来我们就讲讲日志相关知识以及在hibernate中怎样使用log4j.properties。


一、slf4j和log4j

日志记录对于java应用是很重要的,现在已经有很多记录日志的库,我们可以直接拿过来使用,省去了写一个日志系统以及维护的繁琐。

       常见的日志库有java.util.logging,Apache的log4j以及logback,这几个日志库都是日志记录的实现,提供了具体的日志解决方案,是一个具体的日志记录系统,我们可以通过配置文件灵活的配置日志的记录格式、记录级别、输出格式等。

        而slf4j(Simple Logging Facade for Java),简单日志门面,并没有实现日志记录,只是一个抽象层,它不是具体的解决方案,只是服务于具体的日志记录系统,如log4j。


下面讲讲log4j.properties配置文件:


            配置文件实例代码如下:

# 日志输出级别(INFO)和输出位置(stdout,R)
log4j.rootLogger=INFO, stdout , R

# 日志输出位置为控制台
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[QC] %p [%t] %C.%M(%L) | %m%n

# 日志输出位置为文件
log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R.File=D:\\Tomcat 5.5\\logs\\qc.log
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d-[TS] %p %t %c - %m%n

# 定义相应包路径下的日志输出级别
log4j.logger.com.alibaba=DEBUG
log4j.logger.com.opensymphony.oscache=ERROR
log4j.logger.org.springframework=DEBUG
log4j.logger.com.ibatis.db=WARN
log4j.logger.org.apache.velocity=FATAL
 
log4j.logger.org.hibernate.ps.PreparedStatementCache=WARN
log4j.logger.org.hibernate=DEBUG
log4j.logger.org.logicalcobwebs=WARN

配置说明:

说明:

  • log4j.rootCategory=INFO, stdout , R

    此句为将等级为INFO的日志信息输出到stdout和R这两个目的地,stdout和R的定义在下面的代码,可以任意起名。等级可分为OFFFATALERRORWARNINFODEBUGALL,如果配置OFF则不打出任何信息,如果配置为INFO这样只显示INFO, WARN, ERROR的log信息,而DEBUG信息不会被显示,具体讲解可参照第三部分定义配置文件中的logger。

  • log4j.appender.stdout=org.apache.log4j.ConsoleAppender

此句为定义名为stdout的输出端是哪种类型,可以是org.apache.log4j.ConsoleAppender(控制台),org.apache.log4j.FileAppender(文件),org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)

  • log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

此句为定义名为stdout的输出端的layout是哪种类型,可以是org.apache.log4j.HTMLLayout(以HTML表格形式布局),org.apache.log4j.PatternLayout(可以灵活地指定布局模式),org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)

 

  • log4j.appender.stdout.layout.ConversionPattern= [QC] %p [%t] %C.%M(%L) | %m%n

 如果使用pattern布局就要指定的打印信息的具体格式ConversionPattern,打印参数如下:%m 输出代码中指定的消息;%M 输出打印该条日志的方法名;%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL;%r 输出自应用启动到输出该log信息耗费的毫秒数;%c 输出所属的类目,通常就是所在类的全名;%t 输出产生该日志事件的线程名;%n 输出一个回车换行符,Windows平台为"rn”,Unix平台为"n”;%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyyy-MM-dd HH:mm:ss,SSS},输出类似:2002-10-18 22:10:28,921;%l 输出日志事件的发生位置,及在代码中的行数;[QC]是log信息的开头,可以为任意字符,一般为项目简称。输出示例[TS] DEBUG [main] AbstractBeanFactory.getBean(189) | Returning cached instance of singleton bean 'MyAutoProxy'


       下面我们以hibernate为例,讲一个,怎样使用log4j:

二、hibernate日志使用步骤

新建了一个java项目,名称是hibernate_log,结构如下:


项目中红框框以外的代码,请参见Hibernate环境搭建和配置



hibernate搭建完成以后,就是log日志的步骤了,如下:


       1、需要使用三个jar包,分别是:

             1)、log4j-1.2.x.jar

             2)、slf4j-api-1.x.x.jar

             3)、slf4j-log4j12-1.x.x.jar

             x-具体版本号

        2、在项目的src下,添加log4j.properties配置文件,代码如下:

### direct log messages to stdout ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

### direct messages to file hibernate.log ###
#log4j.appender.file=org.apache.log4j.FileAppender
#log4j.appender.file.File=hibernate.log
#log4j.appender.file.layout=org.apache.log4j.PatternLayout
#log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

### set log levels - for more verbose logging change 'info' to 'debug' ###

log4j.rootLogger=info, stdout

#log4j.logger.org.hibernate=info
log4j.logger.org.hibernate=info

### log HQL query parser activity
#log4j.logger.org.hibernate.hql.ast.AST=debug

### log just the SQL
#log4j.logger.org.hibernate.SQL=debug

### log JDBC bind parameters ###
log4j.logger.org.hibernate.type=info
#log4j.logger.org.hibernate.type=debug

### log schema export/update ###
log4j.logger.org.hibernate.tool.hbm2ddl=info

### log HQL parse trees
#log4j.logger.org.hibernate.hql=debug

### log cache activity ###
#log4j.logger.org.hibernate.cache=debug

### log transaction activity
#log4j.logger.org.hibernate.transaction=debug

### log JDBC resource acquisition
#log4j.logger.org.hibernate.jdbc=debug

### enable the following line if you want to track down connection ###
### leakages when using DriverManagerConnectionProvider ###
#log4j.logger.org.hibernate.connection.DriverManagerConnectionProvider=trace

         3、在TestException类中,直接运行main主方法,可以看到打印了好多的日志。





  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
4j2日志框架的示例配置: ``` # 日志级别,可选值:DEBUG, INFO, WARN, ERROR, FATAL log.level=INFO # 日志输出目标,可选值:console(控制台)、file(文件)、tcp(远程TCP服务器) # console输出示例:log4j2.appender.console.type=Console,log4j2.appender.console.name=STDOUT # file输出示例:log4j2.appender.file.type=File,log4j2.appender.file.name=FILE,log4j2.appender.file.fileName=${sys:user.home}/logs/app.log # tcp输出示例:log4j2.appender.tcp.type=Socket,log4j2.appender.tcp.name=TCP,log4j2.appender.tcp.host=localhost,log4j2.appender.tcp.port=4560 log4j2.appender.console.type=Console log4j2.appender.console.name=STDOUT # 日志输出格式,可选值:json(JSON格式)、pattern(自定义格式) # json格式示例:log4j2.appender.console.layout.type=JsonLayout # pattern格式示例:log4j2.appender.console.layout.type=PatternLayout,log4j2.appender.console.layout.pattern=%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n log4j2.appender.console.layout.type=PatternLayout log4j2.appender.console.layout.pattern=%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n # 自定义日志记录器名称,可选值:com.example、org.springframework、org.hibernate # 日志记录器名称示例:log4j2.logger.com.example.name=com.example,log4j2.logger.org.springframework.name=org.springframework,log4j2.logger.org.hibernate.name=org.hibernate log4j2.logger.com.example.name=com.example # 自定义日志记录器级别,可选值:DEBUG, INFO, WARN, ERROR, FATAL # 日志记录器级别示例:log4j2.logger.com.example.level=DEBUG log4j2.logger.com.example.level=DEBUG ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值