SSH整合log4j

Struts,Spring和Hibernate均支持Log4j作为其日志实现系统,因此如果能够合理地配置Log4j,便可以为SSH架构建立起完善的日志系统。

SSH框架中使用log4j的好处:

1. 动态的改变记录级别和策略,即修改log4j.properties,不需要重启Web应用,这需要在web.xml中设置一下。
2. 把log文件定在/WEB-INF/logs/ 而不需要绝对路径。
3. 可以把log4j.properties和其他properties一起放在/WEB-INF/ ,而不是Class-Path。

步骤:

1.导入所需的jar包。

2.创建"*.propertites"文件

3.在web.xml中添加配置,代码如下:

 1 <context-param>
 2     <param-name>log4jConfigLocation</param-name>
 3     <param-value>WEB-INF/log4j.properties</param-value>
 4 </context-param>
 5 <!-- 设置容器每60秒扫描log4j的配置文件 -->
 6 <context-param>
 7     <param-name>log4jRefreshInterval</param-name>
 8     <param-value>60000</param-value>
 9 </context-param>
10 <!-- 设置webAppRootKey参数,来导出可以在log4j.properties配置文件中使用的代表Web应用根目录的占位符 -->
11 <context-param>
12   <param-name>webAppRootKey</param-name>
13   <param-value>webApp.root</param-value>
14 </context-param>
15 <!-- 需要添加spring-web.jar包,否则用发生错误信息-->
16 <listener>
17     <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
18 </listener>

注意:

1.log4j的配置文件如果放在src目录下且起名为“log4j.propertites”,那么在tomcat启动时就会被读取。原因是tomcat默认的日志系统也是log4j,在启动的时候会默认去找src下的log4j.propertites。

2.spring把web目录的路径压入到了webapp.root的系统变量(在web.xml设置),${webapp.root}表示工程目录,可以把它加入到输入路径的前面。如:log4j.appender.appender_demo.File = ${webapp.root}/WEB-INF/log/abc.log

3.Spring监听器加载放在了Spring日志监听器的前面, 导致Spring加载时(这个时候会使用log),但是这个时候spring log监听还没有被加载。所以应把Spring日志监听器放在Spring监听器之前。

基本log4j的Demo:

 1 # For JBoss: Avoid to setup Log4J outside $JBOSS_HOME/server/default/deploy/log4j.xml!
 2 # For all other servers: Comment out the Log4J listener in web.xml to activate Log4J.
 3 log4j.rootLogger=INFO, stdout, logfile
 4 log4j.appender.stdout=org.apache.log4j.ConsoleAppender
 5 log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
 6 log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n
 7 log4j.appender.logfile=org.apache.log4j.RollingFileAppender
 8 log4j.appender.logfile.File=${webApp.root}/WEB-INF/SSHIntegration.log
 9 log4j.appender.logfile.MaxFileSize=512KB
10 # Keep three backup files.
11 log4j.appender.logfile.MaxBackupIndex=3
12 # Pattern to output: date priority [category] - message
13 log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
14 log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n
15 ...  

时间: 2024-11-05 14:47:23

SSH整合log4j的相关文章

SSH整合(配置方式)

工程目录: /SSH1/src/cn/itcast/domain/Book.java package cn.itcast.domain; /** * 图书 */ public class Book { private Integer id; // 图书编号 private String name; // 图书名称 private Double price; // 图书价格 public Integer getId() { return id; } public void setId(Intege

SSH整合(1)异常

信息: No Spring WebApplicationInitializer types detected on classpath 十二月 01, 2016 10:06:12 下午 org.apache.catalina.core.ApplicationContext log 信息: Initializing Spring root WebApplicationContext log4j:WARN No appenders could be found for logger (org.spr

从MVC和三层架构说到SSH整合开发

相信很多人都认同JavaWeb开发是遵从MVC开发模式的,遵从三层架构进行开发的,是的,大家都这么认同.但是相信大家都会有过这样一个疑问,if(MVC三层模式==三层架构思想)out.println(“请继续观看……”) 1.MVC(MODEL-VIEW-CONTROLLER)设计模式: 首先让我们了解下MVC(Model-View-Controller)的概念: MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写

使用注解实现ssh整合

1.搭建项目: 项目名称:ss12.添加jar包    1).struts 2.3.7         --基础        asm-3.3.jar        asm-commons-3.3.jar        asm-tree-3.3.jar        commons-fileupload-1.2.2.jar        commons-io-2.0.1.jar        commons-lang3-3.1.jar        freemarker-2.3.19.jar  

框架 day37 Spring事务管理,整合web,SSH整合,SSH整合注解

1     事务管理 1.1   回顾事务     事务:一组业务操作,要么全部成功,要么全部不成功.     事务特性:ACID 原子性:整体 一致性:数据(完整) 隔离性:并发(多个事务) 持久性:结果     隔离问题:脏读.不可重复读.幻读(虚读)     隔离级别:4个 readuncommitted 读未提交,存在3个问题. readcommitted 读已提交,解决:脏读:存在2个. repeatableread 可重复读,解决:脏读.不可重复读:存在1个 serializ

【Struts2+Hibernate3+Spring3】利用SSH整合,完成打印用户表,用户登录、注册、修改密码系统

本文视图尽可能不杂糅其它技术,尽可能少写代码,完成SSH整合.以致于各位在现有网上资料越来越天花龙凤之下,清晰地了解到传说中的三大框架SSH是怎么整合的. 一.SSH的下载 首先SSH的下载就已经是一个难点.SSH三个地方同时推出各自的新技术,已经要求利用Maven完成其版本的同步.毕竟Spring的版本,决定其能整合什么版本的Struts与Hibernate.Spring3.0.5就不能整合Hibernate4.x了.因此本文选取的SSH的版本,分别为struts 2.3.20 GA.Hibe

SSH整合基础

1.Spring整合Hibernate 整合步骤 导包 配置appliactionContext.xml 创建实体类和映射关系文件 创建DAO接口及实现类 声明DAO组件,注入SessionFactory 2.Spring整合Struts2 导包 配置web.xml 配置applicationContext.xml,开启注解扫描 创建并声明Action 配置Action 创建JSP 3.整合的基本原理 Struts原本使用StrutsObjectFactory来读取struts.xml,根据ac

Spring整合log4j日志组件

PHP转Java有一段时间了,最近在学习Spring的一些组件安装.配置及使用.今天学习了log4j作为项目日志操作组件为web开发节省了大量在项目过程中记录日志及日志输送存储的工作. Log4j是Apache的一个开放源代码项目,通过使用Log4j,控制日志信息输送的目的地可以为控制台.文件.数据库.GUI组件.甚至是套接口服务器.NT的事件记录器.UNIX Syslog守护进程等:可以控制每一条日志的信息内容和信息输出格式:通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程:

SSH整合开发时Scope为默认时现象与原理

1.前提知识 1)scope默认值 进行SSH整合开发时,Struts2的action需要用spring容器进行管理,只要涉及到类以bean的形式入到spring容器中,不管是xml配置还是使用注解方式进行配置,都会涉及到spring管理bean的scope,其一共有五种取值,而其默认值为singleton,也就是单例模型,所有对此bean引用为同一个对象. 2)action应为多例 struts2作为MVC中视图(View)层框架,其最主要任务就是接收用户请求,然后调用业务逻辑层进行处理,这种