WEB系统启动时加载Log4j的配置文件(自己写Listener形式)
来源:互联网 发布:php读取chm文件内容 编辑:程序博客网 时间:2024/05/29 16:07
在整个WEB系统中,为了统一的使用日志管理,需要在系统启动的时候就加载Log4j的配置文件,这样才能保证以后使用log4j的格式是一致的,便于跟踪和解决问题。
那么,如何在系统启动的时候加载log4j的配置文件呢?下面我简单的介绍一下:
1、在web.xml文件中添加一个“监听器”
- <!-- 加载log4j的配置信息 -->
- <listener>
- <listener-class>hb.init.log4j.Log4jInit</listener-class>
- </listener>
2、“监听类”继承“ServletContextListener”接口
- package hb.init.log4j;
- import java.io.FileInputStream;
- import java.io.IOException;
- import java.util.Properties;
- import javax.servlet.ServletContext;
- import javax.servlet.ServletContextEvent;
- import javax.servlet.ServletContextListener;
- import org.apache.log4j.Logger;
- import org.apache.log4j.PropertyConfigurator;
- public class Log4jInit implements ServletContextListener{
- Logger log = Logger.getLogger(Log4jInit.class);
- public void contextDestroyed(ServletContextEvent sce) {
- log.info("Log4jInit contextDestroyed!");
- }
- public void contextInitialized(ServletContextEvent sce) {
- //得到servletContext对象的方法
- ServletContext sc = sce.getServletContext();
- //指明文件的相对路径就能够得到文件的绝对路径
- System.out.println(sc.getRealPath("/"));
- String path = sc.getRealPath("/config/log4j.properties");
- //启动服务器的时候加载日志的配置文件
- init(path,sc);
- log.info("log4j");
- }
- /**
- *
- * @param path 配置文件的路径
- * @param sc ServletContext对象
- */
- public void init(String path,ServletContext sc){
- FileInputStream istream = null;
- try{
- Properties props = new Properties();
- //加载配置文件
- istream = new FileInputStream(path);
- props.remove("log4j.appender.file.File");
- System.out.println(sc.getRealPath("/log/hb.log"));
- //指明log文件的位置
- props.put("log4j.appender.file.File", sc.getRealPath("/log/hb.log"));
- //加载文件流,加载Log4j文件的配置文件信息
- props.load(istream);
- PropertyConfigurator.configure(props);
- } catch (Exception ex){
- try {
- throw new Exception(ex);
- } catch (Exception e) {
- e.printStackTrace();
- }
- } finally{
- try {
- istream.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
- }
加载log4j的配置文件的目的是为了使日志文件“放在跟工程相对路径的地方”,这样即使将项目移植到不同的操作系统上面,显示也是正常的
http://hbiao68.iteye.com/blog/1570421
0 0
- WEB系统启动时加载Log4j的配置文件(自己写Listener形式)
- WEB系统启动时加载Log4j的配置文件
- 自己写的log4j配置文件
- Log4j配置文件解析以及加载自己的配置文件
- Log4j配置文件解析以及加载自己的配置文件
- Log4j配置文件解析以及加载自己的配置文件
- Log4j配置文件解析以及加载自己的配置文件
- Log4j配置文件的加载
- log4j配置文件xml形式
- 非web环境log4j配置文件加载路径
- log4j配置文件的加载问题
- 写自己的log4j Appender
- web容器加载Servlet,Filter,Listener的顺序(转)
- log4j加载自定义的日志的配置文件
- web.xml文件加载顺序 一、 1 、启动一个 WEB 项目的时候, WEB 容器会去读取它的配置文件 web.xml ,读取 <listener> 和 <context-param>
- [Log4j] Log4j 的配置和配置文件加载顺序
- log4j配置文件加载方式
- Tomcat7中web应用加载原理(三)Listener、Filter、Servlet的加载和调用
- 加密解密
- 【特征检测】FAST特征点检测算法
- LeetCode: 3. Longest Substring Without Repeating Characters
- Android studio修改作者信息
- 深度学习基础(五)—— rectifier function and softplus
- WEB系统启动时加载Log4j的配置文件(自己写Listener形式)
- Mybatis的<where><foreach><set>等标签详解
- jps 遇到process information unavailable
- TCP/IP协议 三次握手与四次挥手
- 沙漠里的千里马
- openstack for Mitaka——Shared File System(Manila)安装初探
- 深度学习资料
- hadoop的配置
- Maven环境搭建和介绍