SSH框架下项目的日志文件配置

2 篇文章 0 订阅
1 篇文章 0 订阅
SSH框架下项目的日志文件配置
一、导入开发包:
有这么几个:
1、log4j-1.2.*.jar  建议添加log4j-1.2.12 之后的版本。
2、slf4j-api-1.7.5
3、slf4j-log4j12-1.7.5 这里两个slf4j的版本最好对应。
关于开发包,slf4j可能会报这样两个错误:

1.Failed to load class org.slf4j.impl.StaticLoggerBinder

see-> http://www.slf4j.org/codes.html#StaticLoggerBinder

This error is reported when the org.slf4j.impl.StaticLoggerBinder class could not be loaded into memory. This happens when no appropriate SLF4J binding could be found on the class path. Placing one (and only one) of slf4j-nop.jar, slf4j-simple.jar, slf4j-log4j12.jar, slf4j-jdk14.jar or logback-classic.jar on the class path should solve the problem.
关键是最后一句,配置一个(仅需要一个)后面提到的开发包,这里配合log4j的话选用slf4j-log4j12.jar。

2.SLF4J versions 1.4.0 and later requires log4j 1.2.12 or later

see-> http://www.slf4j.org/codes.html#log4j_version

The trace level was added to log4j in version 1.2.12 released on August 29, 2005. The trace level was added to the SLF4J API in version 1.4.0 on May 16th, 2007. Thus, starting with SLF4J 1.4.0, the log4j binding for SLF4J requires log4j version 1.2.12 or above.
就是说要用高版本的log4j.jar,至少要1.2.12后的。

这里多说一句,我之前出现这个问题,从换开发包到修改log4j.properties,捣鼓了大半天,一直是这个错误,我项目里导入的开发包明明是高于1.2.12这个版本的,为什么还是报这个错误。后来突然看到不知道是哪一篇blog里的一个评论才恍然大悟,报版本错误是有原因的,项目里的build path不等于服务器下的环境。我这里用的是tomcat,tomcat会在项目部署到服务器时自动把开发包过滤后一起复制到项目的lib下,这里的过滤会把重复的包以及基础的开发包过滤掉,却不会过滤版本不同的开发包。换句话说,我之前的项目可能导入过低版本的log4j.jar,后来在build path里把这个低版本的jar删了,又导入了一个高版本的jar,从编译器的build path来看是没有问题,但是在tomcat下,低版本的jar还是存在,并没有删掉,然后服务器启动的时候刚好先加载了那个低版本的开发包,然后就会出现因版本问题而产生的异常,也就是这里的问题。
其实说这么多话就想说明白一件事,当你觉得你的开发包没有问题的时候,去看看服务器下项目的开发包,或许问题就在那里。
OK,关于开发包的问题就说到这。


二、建立相关配置文件以及添加监听器
创建log4j.properties,文件存放的位置可以是src下,这样编译后会自动添加到WEB-INF的classes下。
配置文件的内容及格式这里不多说了,可以参考

http://summerbell.iteye.com/blog/487736

http://blog.csdn.net/waferleo/article/details/7641166

要注意的一点就是,如果需要输出SQL的查询语句,那么输出端的等级必须是DEBUG,因为SQL语句都是以DEBUG的形式被记录的。如果想要在控制台看到SQL语句,则必须定义控制台输出的等级为DEBUG,
这样一来会有一大堆不必要的信息输出来。个人感觉INFO等级的信息已经很多了。其实DEBUG的信息完全可以输出到日志文件保存,至于控制台,INFO等级的信息应该足够了,至于想在控制台看到SQL语句,其实还有一个方法,就是修改hibernate的配置文件,如果hibernate由spring管理,则修改spring的配置文件applicationContext.xml。

<property name="hibernateProperties">
               <props>
                    <prop key="hibernate.dialect">
                         org.hibernate.dialect.MySQLDialect
                    </prop>
                    <prop key="hibernate.show_sql">
                         trus
                    </prop>
                    <prop key="hibernate.format_sql">
                         true
                    </prop>
               </props>
</property>

具体能修改的参数可以参考

http://blog.163.com/xu_shuhao/blog/static/52577487201192153016500/

这样就能在控制台看到SQL信息了。


监听器及log4j在web.xml里的配置为:

<!-- log4j start -->
     <context-param>
          <param-name>log4jConfigLocation</param-name>
          <param-value>/WEB-INF/classes/log4j.properties</param-value>
     </context-param>
     <context-param>
          <param-name>log4jRefreshInterval</param-name>
          <param-value>60000</param-value>
     </context-param>
     <listener>
          <listener-class>
               org.springframework.web.util.Log4jConfigListener
          </listener-class>
     </listener>
<!-- log4j end -->


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值