首页 | 互联网 | IT动态 | IT培训 | Cisco | Windows | Linux | Java | .Net | Oracle | 软件测试 | C/C++ | 嵌入式开发 | 存储世界 | 服务器
网络设备 | IDC | 安全 | 求职招聘 | 数字网校 | 网页设计 | 平面设计 | 技术专题 | 电子书下载 | 教学视频 | 源码下载 | 搜索 | 博客 | 论坛
中国IT实验室Linux频道
中国IT教育
Google
首页 资讯动态 认证考试 新手入门 核心技术 高级技术 J2EE J2ME Java&XML 开源技术 其他技术 RSS订阅 论坛 专题
您现在的位置: 中国IT实验室 >> Java >> 开源技术 >> Spring >> 正文

Spring 与 Log4J 进行动态日志配置切换


    1.6 构建两个 JSP 页面
     一个成功的页面 RefreshSuccess.jsp,代码如下
    <%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
    <title>动态配置操作成功</title>
    <link href="facade.css" rel="stylesheet" type="text/css"/>
    </head>

    <body>
    <img src="logger.jpg" alt="日志动态配置管理控制台"/>
    <p>
    恭喜:动态配置操作成功!
    <p>
    当前的配置为:
    <textarea rows="23" cols="123" ReadOnly><%=request.getAttribute("RunningConfig")%></textarea>
    <p>
    <a href="JavaScript:history.go(-1)">返  回</a>
    </body>
    </html>

    以及一个失败的页面 RefreshFailed.jsp ,代码略

    1.7 配置 Spring 的 Bean 文件(Service)
    beanRefLog4J.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
    <beans>
     <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
      <property name="locations">
       <list>
        <value>classpath:LoggerConsole.properties</value>
       </list>
      </property>
     </bean>
     <bean id="log4JRefreshInterval" class="net.agile.springtime.logger.util.Log4JRefreshInterval" init-method="init" destroy-method="destroy">
      <property name="location" value="${logger.log4j.location}"/>
      <property name="refreshDaemon" value="${logger.log4j.refreshDaemon}"/>
      <property name="refreshInterval" value="${logger.log4j.refreshInterval}"/>
      <property name="refreshSecond" value="${logger.log4j.refreshSecond}"/>  <property name="refreshMinute" value="${logger.log4j.refreshMinute}"/>  <property name="refreshHour" value="${logger.log4j.refreshHour}"/> </bean>
    </beans>

    1.8 配置 Spring 的 Bean 文件(MVC)
    beanRefMVC.xml

    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
    <beans>
      <bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
      <property name="mappings">
       <props>
        <prop key="/log4JRefresh.do">log4JRefreshController</prop>
        <prop key="/log4JShutdown.do">log4JShutdownController</prop>
        <prop key="/log4JRunning.do">log4JRunningController</prop>
       </props>
      </property>
     </bean>
     <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
      <property name="prefix">
       <value>/WEB-INF/jsp/</value>
      </property>
      <property name="suffix">
       <value>.jsp</value>
      </property>
     </bean>
     <bean id="log4JRefreshController" class="net.agile.springtime.logger.web.Log4JRefreshController">
      <property name="successView" value="RefreshSuccess"/>
      <property name="failedView" value="RefreshFailed"/>
      <property name="log4JRefreshInterval" ref="log4JRefreshInterval"/>
     </bean>
      <bean id="log4JShutdownController" class="net.agile.springtime.logger.web.Log4JShutdownController">
      <property name="successView" value="RefreshSuccess"/>
      <property name="failedView" value="RefreshFailed"/>
      <property name="log4JRefreshInterval" ref="log4JRefreshInterval"/>
     </bean>
      <bean id="log4JRunningController" class="net.agile.springtime.logger.web.Log4JRunningController">
      <property name="successView" value="RefreshSuccess"/>
      <property name="failedView" value="RefreshFailed"/>
      <property name="log4JRefreshInterval" ref="log4JRefreshInterval"/>
     </bean>
    </beans>

    1.9 在你现有的应用中引入这两个 Spring 的配置文件,或者根据你的项目结构进行调整即可

    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
    <beans>
     <import resource="beanRefLog4J.xml" />
     <import resource="beanRefMVC.xml" />
    </beans>

    1.10 配置 web.xml 文件
      在 web.xml 中增加 Spring MVC 的配置以及测试用的 Servlet 的配置,完整的配置如下:
    <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
    <web-app>
     <display-name>Spring Log4J Refresh Web Application</display-name>
     <description>Spring Log4J Refresh Web Application</description>
      <context-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>/WEB-INF/classes/beanRefApplication.xml</param-value>
     </context-param>
        <listener>
            <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
        </listener>
      <servlet>
      <servlet-name>dispatcherServlet</servlet-name>
      <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
      <load-on-startup>50</load-on-startup>
     </servlet>
        <servlet>
      <servlet-name>HelloServlet</servlet-name>
      <display-name>HelloServlet</display-name>
      <servlet-class>net.agile.springtime.logger.web.HelloServlet</servlet-class>
     </servlet>
         <servlet-mapping>
      <servlet-name>HelloServlet</servlet-name>
      <url-pattern>/HelloServlet</url-pattern>
     </servlet-mapping>
     <servlet-mapping>
      <servlet-name>dispatcherServlet</servlet-name>
      <url-pattern>*.do</url-pattern>
     </servlet-mapping>
    </web-app>
    这样,你的项目就具有了动态日志配置切换的功能了。

上一页  [1] [2] [3] [4] 下一页

【责编:Ken】

中国IT教育

相关产品和培训
文章评论
 友情推荐链接
 认证培训
 专题推荐

 ·关于Java框架技术专题
 ·XML全攻略技术专题
 ·JAVA开源技术介绍专题
 ·Java嵌入式开发之J2ME技术专题
 ·超前体验 Oracle 11g的5个新特性…
 ·揭密使用VB.NET的五个实用技巧
 ·Oracle和SQL Server常用函数对比专题…
 ·展现C#世界 C#程序设计专题…
 ·Java入门 Tomcat的配置技巧精华专题…
 ·Oracle RMAN物理备份技术详解…
 今日更新
 社区讨论
 博客论点
 频道精选
 Java 频道导航