SSH(三)资源分类和日志管理
来源:互联网 发布:淘宝开店软件靠谱吗 编辑:程序博客网 时间:2024/06/06 08:56
上篇博文已经分别介绍了如何搭建SSH开发环境以及对SSH三个框架的整合。整合完成之后,我们基本上就可以正常的开始一个基于SSH框架开发的项目了。本篇博文介绍的资源分类和日志管理都是一些锦上添花的配置。利用这些,来清晰我们的思路,便利我们的编程。
先来说说资源分类吧。这里的资源分类是指对项目中代码或者配置文件等的一个分类管理。以下截图中的分类只是参考,主要是对于资源分类管理思想上的重视。我们要知道,一个结构清晰,骨架简洁的项目是极其方便团队开发,同时也可加快新人或者他人对该项目的理解。
再来说说日志管理,一般稍大型的项目都会加入日志管理。日志模块基本是一个必不可少的部分,它对调试,记录运行,问题定位都起到很重要的作用。我们常见的日志工具有很多:sf4j、commons-logging、log4j、JDK自带logging等。这些日志框架的常用功能和使用方式都是大体相同的。在这里我想要格外说的就是sf4j,它不同于log4j或者logging等日志工具。sf4j是一个管理日志工具的工具。加入它是为了应对项目中日志框架的变化,例如开始使用的log4j,但是后期因为某种原因想要更换为commons-logging,如果使用了sf4j,开发人员只需要调用slf4j即可,然后slf4j根据开发人员加入的不同的jar包,来调用相应的日志工具。
当前项目中我们使用的日志工具就是sf4j和log4j,下图是使用log4j我们需要加入的jar包:
Log4j由三个重要的组件构成:日志信息的优先级,日志信息的输出目的地,日志信息的输出格式。日志信息的优先级从高到低有FATAL、ERROR、WARN、INFO、DEBUG,分别用来指定这条日志信息的重要程度;日志信息的输出目的地指定了日志将打印到控制台还是文件中;而输出格式则控制了日志信息的显示内容。
其中日志信息的优先级别FATAL、ERROR、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
显示结果为:
至此,关于资源分类和日志管理,我们有了一个最基础的了解,具体深入的使用还需要继续在项目中摸索学习。
- SSH(三)资源分类和日志管理
- SSH用户权限管理(三)
- MySQL 日志管理(三)
- SSH 统一日志管理
- 雇员管理系统-SSH版(三)
- critical_section临界资源日志管理
- PowerShell 2.0管理事件日志(三)管理和创建事件日志
- 自己动手做博客之日志管理-5.2 管理日志分类
- 项目实战三:ssh实现无限分类
- 开源电子商务OFBIZ:商品分类与管理(三)
- 开源电子商务OFBIZ:商品分类与管理(三)
- ACM算法分类和资源
- mysql日志管理三.查询日志
- 黑马程序员——OC语言日志——内存管理的原理、分类和原则
- log4j2日志管理xml配置方式实现日志分类输出
- WebSphere8管理和日志
- 内存管理原理和分类
- 创建和管理文章分类
- vsftpd出现“Response: 500 OOPS: cannot change directory”解决方法
- mongodb 常用命令
- 简要分析unity3d中剪不断理还乱的yield
- 使用 jQuery Mobile 与 HTML5 开发 Web App(十三) —— jQuery Mobile 方法下
- jquery事件之鼠标事件
- SSH(三)资源分类和日志管理
- Hibernate中如何用HQL进行模糊查询
- 2014年终总结
- 三层MLP的Error Backpropagation推导
- Linux中的POSIX字符类
- C++ vector基本操作学习
- iOS使用NSMutableAttributedString实现富文本
- 循环-09. 支票面额(15)
- 同步/异步,阻塞/非阻塞