日志框架实现实时修改,实时生效,具体框架思路(7)

在第一章中有提到编写一个监听器,实现定时刷新log4j.propertes文件,实现修改之后日志文件生效。

该listener必须在Spring的listener后面启动,否则无法启动。

具体的web.xml配置 如下:

<listener>

<listener-class>com.work.log.listener.LogStartListener</listener-class>

</listener>

监听类的具体实现如下:

package com.work.log.listener;

import javax.servlet.ServletContextEvent;

import javax.servlet.ServletContextListener;

import org.apache.log4j.PropertyConfigurator;

/**

* 日志启动Listener 该listener必须在Spring的listener后面启动,否则无法启动

* @version

* @see

* @since

*/

public class LogStartListener implements ServletContextListener

{

private static final int LOG4J_SCAN_TIME = 10;

/**

* 系统停止

* @param event ServletContextEvent

*/

public void contextDestroyed(ServletContextEvent event)

{

}

/**

* 系统启动

* @param event ServletContextEvent

*/

public void contextInitialized(ServletContextEvent event)

{

// 启动Log4j配置文件监听

configureAndWatch();

// 启动数据库日志

}

/**

* 设置Log4j定时读取配置文件

* @see [类、类#方法、类#成员]

*/

private void configureAndWatch()

{

// 定时扫描

PropertyConfigurator.configureAndWatch("log4j.propertes", LOG4J_SCAN_TIME);

}

}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-14 09:59:50

日志框架实现实时修改,实时生效,具体框架思路(7)的相关文章

iOS 实时修改顶部电池条颜色

通过滑动界面,根据偏移量 实时修改顶部statusBarStyle(电池条)颜色. 直接上代码: 首先将info.plist文件中View controller-based status bar appearance这个参数设置为NO. 其次在scrollView的代理方法里设置样式即可 - (void)scrollViewDidScroll:(UIScrollView *)scrollView { _content = scrollView.contentOffset.y; _navview.

vue中如何实时修改输入的值

vue中如何实时修改输入的值 经常看到需要对用户输入的值进行实时修改,有时是需要修改为指定的展示内容,有时候是用来校验,禁止用户输入非法数据,总之是一个常见的需求吧,只是自己一直没有特意去关注.思来想去还是有必要了解一下. 操作方法 一直听说各种方式,记得最深的便是利用computed的计算属性,通过set 和 get 来进行修改,其他的也有所见闻.先实现一种,再进行其他其他深究,以及使用好坏. vue文档说明 对于需要使用输入法 (如中文.日文.韩文等) 的语言,你会发现 v-model 不会

(四)SSO之CAS框架单点登录,修改验证数据库的方式

应需求的变化,在登录cas的时候,默认根据用户名和密码进行验证,如果加上用户名,密码和一个系统标识进行验证呢?该如何做呢? 我们知道cas默认的登录界面中,输入的用户名和密码,再配置一下deployerConfigContext.xml 这个文件中的bean  org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler 的这个标签,写上对应的sql,以及在<bean id="dataSource" class=&q

Thinkphp框架中自定义修改success和error页面

Thinkphp框架中自定义修改success和error页面 Thinkphp框架的默认success和error太难看,可以自定义设置,步骤如下: (注意:TP原框架中的success跳转有问题,先修改框架内容) 在TP的Controller.class.php中L284行下增加exit; 1.修改配置文件,增加自定义页面路径(在Admin模块下的config.php中增加) // 跳转页面模板 'TMPL_ACTION_ERROR' => MODULE_PATH.'View/Common/

《开源框架那些事儿22》:UI框架设计实战

UI是User Interface的缩写,通常被认为是MVC中View的部分,作用是提供跟人机交互的可视化操作界面.MVC中Model提供内容给UI进行渲染,用户通过UI框架产生响应,一般而言会由控制层调用业务逻辑进行处理,并把处理结果以Model方式返回View,再次渲染.UI框架的大致过程就是如此,按实现方式可以分为RIA和瘦客户端方式,目前基于B/S的瘦客户端方式比较流行.UI框架套路上很简单,但是想要做好可就不容易了.目前基于MVC的框架灿若繁星,不客气的说是个软件公司就有自己的技术框架

Android数据库框架——GreenDao轻量级的对象关系映射框架,永久告别sqlite

Android数据库框架--GreenDao轻量级的对象关系映射框架,永久告别sqlite 前不久,我在写了ORMLite这个框架的博文 Android数据库框架--ORMLite轻量级的对象关系映射(ORM)Java包 但是对于我个人来说,我可能更加倾向于用GreenDao,所以今天也为大家带来了GreenDao的详细博客,希望大家喜欢,之前也详细介绍了ORM的思想,如果不明白可以先看一下前面的博文,这里就不多赘述了,我们新建一个工程 一.相关介绍 官方网站 : http://greendao

优雅地实现Android主流图片加载框架封装,可无侵入切换框架

项目开发中,往往会随着需求的改变而切换到其它图片加载框架上去.如果最初代码设计的耦合度太高,那么恭喜你,成功入坑了.至今无法忘却整个项目一行行去复制粘贴被支配的恐惧.:) 那么是否存在一种方式 能够一劳永逸地解决这个痛点呢?下面我们来分析一下图片加载框架面对的现状和解决思路. 问题现状 一个优秀的框架一般在代码设计的时候已经封装很不错了,对于开发者而言框架的使用也是很方便,但是为什么说我们往往还要去做这方面的框架封装呢?原因很简单,实际项目开发中,我们不得不面对着日新月异的需求变化,想要在这个变

ASP.NET MVC+EF框架+EasyUI实现权限管理系列(1)-框架搭建

原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(1)-框架搭建 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇) 前言:这篇博客开始我们便一步一步的来实现这个权限系统的初步设计-框架搭建,首先我要说的是我们需要开发工具Visual Studio 2012或者10也行,其次是我们要有SQL Server数据库,如果是Visual Studio 2010的话,你还要安装MVC4的开发文件,这个是吗?我不记得了,谁可以回答我一下的,我一直用2012,都是集成

企业级应用框架(五)IOC容器在框架中的应用

前言 在上一篇我大致的介绍了这个系列所涉及到的知识点,在本篇我打算把IOC这一块单独提取出来讲,因为IOC容器在解除框架层与层之间的耦合有着不可磨灭的作用.当然在本系列前面的三篇中我也提供了一种基于反射的解耦方式,但是始终不是很优雅,运用到项目中显得别扭.目前,我所掌握的IOC容器主要有两个:一个是 unity,另一个则是spring.net,经过慎重的思考我还是决定选择unity 2.0做为本系列的IOC容器,原因主要有两个:第一,他是一个轻量级的容器且师出名门(微软),第二,它提供了简单的拦

一步步搭建自己的轻量级MVCphp框架-(一)什么是PHP框架以及MVC设计模式

PHP框架 php框架对很多新手而言可能会觉得很难攀越,其实不然 ,只要知道一个框架的流程,明白原理了,基本类似框架都可以看懂,php框架真正的发展要从php5开始了,其实php4时代就有一些框架,但是因为框架并没有给大家带来多方便而觉得很复杂,速度没有纯php好,所以一直到了php5才有大的发展,php5的面向对象模型的修改对框架的发展起了很大的作用. 框架就是通过提供一个开发Web程序的基本架构,PHP开发框架把PHPWeb程序开发摆到了流水线上.换句话说,PHP开发框架有助于促进快速软件开