Eclipse+Servlet 2.5 的Struts2项目使用Log4j2

在J2EE中如何使用Log4j2可以查阅官方文档:http://logging.apache.org/log4j/2.x/manual/webapp.html

以下是一个简单的DEMO:

1、首先创建一个名为Log4j2InJ2EEDemo的项目,配置如下:

Eclipse+Servlet 2.5 的Struts2项目使用Log4j2_第1张图片

2、导入struts2相关的包,并进行基础配置,参考:http://blog.csdn.net/axwolfer/article/details/40057941

3、导入log4j2相关的包,在src项目添加log4j2.xml配置文件,配置如下:

配置中我们有两个Appender,一个时标准的系统输出,一个是滚动文件,注意这里滚动文件我设置了"logs/demorolling.log",用这个配置时,在Eclipse中调试,最终的日志会输出到Eclipse的安装目录下,在安装目录下会创建logs文件夹



	
    
  
  
      
    
    
      
        %d{MM-dd-yyyy} %p %c{1.} [%t] -%M-%L- %m%n
      
      
        
        
      
      
    
  
  
  
      	
		
    
      
    
  


4、创建一个名为com.log4j2inj2eedemo.Demo的Action,代码如下:

package com.log4j2inj2eedemo;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

import com.opensymphony.xwork2.ActionSupport;


public class Demo extends ActionSupport {
	private static final Logger logger = LogManager.getLogger(Demo.class);

	/* (non-Javadoc)
	 * @see com.opensymphony.xwork2.ActionSupport#execute()
	 */
	@Override
	public String execute() throws Exception {
		// TODO Auto-generated method stub
		logger.info("This is just a test.");
		return SUCCESS;
	}
}

5、添加一个名为index.jsp的页面,页面内容随便写,如:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>




Insert title here


This is just a test.

6、在sturts.xml中配置demo和index.jsp的对应关系:






  


		
            /index.jsp
        
	


7、在web.xml中配置我们的Log4j配置文件及log4j的过滤器:



  Log4j2InJ2EEDemo
  
    index.html
    index.htm
    index.jsp
    default.html
    default.htm
    default.jsp
  
  
     
        struts2  
          
            org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter  
          
      
      
        struts2  
        /*  
    
    
    
        isLog4jAutoInitializationDisabled
        false
    
    
	
        log4jConfiguration
        /WEB-INF/classes/log4j2.xml
    

    
        org.apache.logging.log4j.web.Log4jServletContextListener
    
 
    
        log4jServletFilter
        org.apache.logging.log4j.web.Log4jServletFilter
    
    
        log4jServletFilter
        /*
        REQUEST
        FORWARD
        INCLUDE
        ERROR
       
    

8、最终项目结构如下:

Eclipse+Servlet 2.5 的Struts2项目使用Log4j2_第2张图片

9:、启动调试,在浏览器地址栏输入:http://localhost:8080/Log4j2InJ2EEDemo/demo.action

查看Eclipse安装目录下新创建的logs文件夹及记录的日志:

Eclipse+Servlet 2.5 的Struts2项目使用Log4j2_第3张图片

10、把项目导出成WAR到tomcat的webapps目录下,重启tomcat系统会自动部署Log4j2InJ2EEDemo项目,启动完成后,在浏览器地址栏重新输入http://localhost:8080/Log4j2InJ2EEDemo/demo.action,然后去查找日志的时候找不到日志了,我使用的是win8系统,这种情况下修改log4j.xml,把RollingFile的fileName属性修改为fileName="/logs/demorolling.log"然后重新导出WAR,重新启动tomcat并浏览Index页面,此时在C盘根目录下便可以找到logs/demorolling.log文件



你可能感兴趣的:(JAVA)