SSH(三)资源分类和日志管理

来源:互联网 发布:淘宝开店软件靠谱吗 编辑:程序博客网 时间:2024/06/06 08:56

    上篇博文已经分别介绍了如何搭建SSH开发环境以及对SSH三个框架的整合。整合完成之后,我们基本上就可以正常的开始一个基于SSH框架开发的项目了。本篇博文介绍的资源分类日志管理都是一些锦上添花的配置。利用这些,来清晰我们的思路,便利我们的编程。

 

   先来说说资源分类吧。这里的资源分类是指对项目中代码或者配置文件等的一个分类管理。以下截图中的分类只是参考,主要是对于资源分类管理思想上的重视。我们要知道,一个结构清晰骨架简洁的项目是极其方便团队开发,同时也可加快新人或者他人对该项目的理解。


 

   再来说说日志管理,一般稍大型的项目都会加入日志管理。日志模块基本是一个必不可少的部分,它对调试,记录运行,问题定位都起到很重要的作用。我们常见的日志工具有很多:sf4j、commons-logginglog4jJDK自带logging等。这些日志框架的常用功能和使用方式都是大体相同的。在这里我想要格外说的就是sf4j,它不同于log4j或者logging等日志工具。sf4j是一个管理日志工具的工具。加入它是为了应对项目中日志框架的变化,例如开始使用的log4j,但是后期因为某种原因想要更换为commons-logging,如果使用了sf4j,开发人员只需要调用slf4j即可,然后slf4j根据开发人员加入的不同的jar包,来调用相应的日志工具。

 

   当前项目中我们使用的日志工具就是sf4jlog4j,下图是使用log4j我们需要加入的jar包:


   Log4j由三个重要的组件构成:日志信息的优先级日志信息的输出目的地日志信息的输出格式。日志信息的优先级从高到低有FATALERROR、WARN、INFO、DEBUG,分别用来指定这条日志信息的重要程度;日志信息的输出目的地指定了日志将打印到控制台还是文件中;而输出格式则控制了日志信息的显示内容。

   其中日志信息的优先级别FATALERROR、WARN、INFO、DEBUG分别代表:严重错误、错误、警告、一般信息、调试信息

   关于日志级别的设置,在log4j.properties文件中:

### direct logmessages to stdout ###log4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.Target=System.outlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE}%5p %c{1}:%L - %m%n ### direct messagesto 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=error,stdout #log4j.logger.org.hibernate=info#log4j.logger.org.hibernate=debuglog4j.logger.cn.itcast.oa=debug

   

     log4j.rootLogger=error,stdout

   通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。比如在这里定义了INFO级别,则应用程序中所有DEBUG级别的日志信息将不被打印出来。

  

     log4j.logger.cn.itcast.oa=debug
则是单独设置某个项目中的某个包的日志级别。

 

   加入jar包和配置文件,我们就可以使用日志管理我们的项目了。下面就是我对加入日志的一个测试。测试类代码:

package cn.itcast.oa.test;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import org.junit.Test;public class LogTest {private Log log = LogFactory.getLog(this.getClass());@Testpublic void test() {log.debug("这是debug信息");log.info("这是info信息");log.warn("这是warn信息");log.error("这是error信息");log.fatal("这是fatal信息");}}

   当我们在log4j.properties配置文件中设置不同的日志级别时,控制台打印的信息应该也是不尽相同。先看日志级别为debug

   

    log4j.rootLogger=debug,stdout

   debug是最低级别,应该比它级别高的日志都应该被打印出来。显示结果为:


 

   再对比看一下,设置日志级别为error。比它低的日志级别信息应该是不能被打印出来的。

   

    log4j.rootLogger=error,stdout

   显示结果为:


 

   至此,关于资源分类和日志管理,我们有了一个最基础的了解,具体深入的使用还需要继续在项目中摸索学习。

1 0
原创粉丝点击