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/

    源码下载:百度云盘

  • 相关阅读:
    LeetCode Find Duplicate File in System
    LeetCode 681. Next Closest Time
    LeetCode 678. Valid Parenthesis String
    LeetCode 616. Add Bold Tag in String
    LeetCode 639. Decode Ways II
    LeetCode 536. Construct Binary Tree from String
    LeetCode 539. Minimum Time Difference
    LeetCode 635. Design Log Storage System
    LeetCode Split Concatenated Strings
    LeetCode 696. Count Binary Substrings
  • 原文地址:https://www.cnblogs.com/travellife/p/3977144.html
Copyright © 2011-2022 走看看