zoukankan      html  css  js  c++  java
  • Hibernate学习之——搭建log4j日志环境

      昨天讲了Hibernate开发环境的搭建以及实现一个Hibernate的基础示例,但是你会发现运行输出只有sql语句,很多输出信息都看不见。这是因为用到的是slf4j-nop-1.6.1.jar的实现,这是slf4j自己的实现,但用的并不多,但是我们可以使用slf4j的接口对上log4j的实现,当然也可以对上其它的log实现。那么,我就在昨天Hello_World上搭建一个log4j的日志环境。

      

    一、SLF4J简介

      SLJ4F(Simple Logging Facade for Java)简单日志门面,为各种loging APIs提供一个简单统一的接口,从而使得最终用户能够在部署的时候配置自己希望的loging APIs实现。

      SLF4J 不依赖任何特殊的class loader机制,实际上,SLF4J 和已有日志实现的绑定是在编译时静态执行的,具体绑定工作是通过一个jar包实现的,使用时只要把相应的jar包(只有一个)放到类路径上即可

    二、log4j搭建环境所需文件

      1、log4j-1.2.17:http://pan.baidu.com/s/1c0hDZG0

      其余资源下载请参见前一篇博客:Hibernate学习之——Hibernate环境搭建

    三、SLF4J的实现原理

      SLF4J支持多个日志系统,比如NOP, Simple, log4j, JDK 1.4 logging, JCL and logback。那么,SLF4J它的实现原理是什么呢?SLF4J它只提供一个核心slf4j api(就是slf4j-api.jar包),这个包只有日志的接口,并没有实现,所以如果要使用就得再给它提供一个实现了些接口的日志包,比 如:log4j,common logging,jdk log日志实现包等,但是这些日志实现又不能通过接口直接调用,实现上他们根本就和slf4j-api不一致,因此slf4j又增加了一层来转换各日志实现包的使 用,当然slf4j-simple、slf4j-nop除外。其结构如下:

    实现原理:

      

    四、slf4j+log4j组合使用模式
      1. slf4j-api-1.6.1.jar 
      2. slf4j-log4j12-1.6.1.jar 
      3. log4j-1.2.17.jar 
      4. log4j.properties(自己在Hibernate的文件夹里搜索即可获得,对于不需要的输出只需用#注释掉即可)
      此处组合模式中jar的版本号须要对应。对于配置完成的项目,里面需要有这三个日志文件jar包

      log4j.properites配置信息:

     1 ### direct log messages to stdout ###
     2 log4j.appender.stdout=org.apache.log4j.ConsoleAppender
     3 log4j.appender.stdout.Target=System.out
     4 log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
     5 log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
     6 
     7 ### direct messages to file hibernate.log ###
     8 #log4j.appender.file=org.apache.log4j.FileAppender
     9 #log4j.appender.file.File=hibernate.log
    10 #log4j.appender.file.layout=org.apache.log4j.PatternLayout
    11 #log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
    12 
    13 ### set log levels - for more verbose logging change 'info' to 'debug' ###
    14 
    15 log4j.rootLogger=warn, stdout
    16 
    17 #log4j.logger.org.hibernate=info
    18 log4j.logger.org.hibernate=debug
    19 
    20 ### log HQL query parser activity
    21 #log4j.logger.org.hibernate.hql.ast.AST=debug
    22 
    23 ### log just the SQL
    24 #log4j.logger.org.hibernate.SQL=debug
    25 
    26 ### log JDBC bind parameters ###
    27 log4j.logger.org.hibernate.type=info
    28 #log4j.logger.org.hibernate.type=debug
    29 
    30 ### log schema export/update ###
    31 log4j.logger.org.hibernate.tool.hbm2ddl=debug
    32 
    33 ### log HQL parse trees
    34 #log4j.logger.org.hibernate.hql=debug
    35 
    36 ### log cache activity ###
    37 #log4j.logger.org.hibernate.cache=debug
    38 
    39 ### log transaction activity
    40 #log4j.logger.org.hibernate.transaction=debug
    41 
    42 ### log JDBC resource acquisition
    43 #log4j.logger.org.hibernate.jdbc=debug
    44 
    45 ### enable the following line if you want to track down connection ###
    46 ### leakages when using DriverManagerConnectionProvider ###
    47 #log4j.logger.org.hibernate.connection.DriverManagerConnectionProvider=trace

      这样一个log4j的日志环境已经搭建完成了,如果有不明白的地方,可以下载源码参考学习。

    作者:登天路

    转载请说明出处:http://www.cnblogs.com/travellife/

    源码下载:百度云盘

  • 相关阅读:
    ubuntu 安装精简桌面; VNC; vncserver 配置
    2019-11-29-Roslyn-通过-NuGet-库修改应用程序入口函数
    2019-11-29-C#-字典-Dictionary-的-TryGetValue-与先判断-ContainsKey-然后-Get-的性能对比
    2019-11-29-WPF-测试触摸设备发送触摸按下和抬起不成对
    2019-11-29-浅谈-Windows-桌面端触摸架构演进
    2019-11-29-C#-通过编程的方法在桌面创建回收站快捷方式
    2019-11-29-C#-直接创建多个类和使用反射创建类的性能
    2019-11-29-WPF-客户端开发需要知道的触摸失效问题
    2019-11-29-asp-dotnet-core-通过图片统计-csdn-用户访问
    2019-11-29-逗比面试官成长路线-如何让被面试者觉得糟心
  • 原文地址:https://www.cnblogs.com/travellife/p/3977144.html
Copyright © 2011-2022 走看看