1. 程式人生 > >修改配置原生log4j,使得指定的類檔案輸出到指定的檔案中(非Spring框架)

修改配置原生log4j,使得指定的類檔案輸出到指定的檔案中(非Spring框架)

1.配置web.xml

<context-param>
    <param-name>log4jRefreshInterval</param-name>
    <param-value>1000</param-value>
  </context-param>
    <servlet>
        <servlet-name>Log4JInitServlet</servlet-name>  
        <servlet-class>cn.com.conf.Log4JInitServlet</servlet-class>  
        <init-param>  
            <param-name>log4j-properties-location</param-name>  
            <param-value>/log4j.properties</param-value>  
        </init-param>
        <load-on-startup>3</load-on-startup>  

   </servlet>

2.增加log4j的java啟動

@WebServlet("/Log4JInitServlet")  
public class Log4JInitServlet extends HttpServlet {  
    private static final long serialVersionUID = 1L;  


    /** 
     * @see HttpServlet#HttpServlet() 
     */  
    public Log4JInitServlet() {  
        super();  
        // TODO Auto-generated constructor stub  
    }  


    /** 
     * @see Servlet#init(ServletConfig) 
     */  
    public void init(ServletConfig config) throws ServletException {  
        System.out.println("===>Log4JInitServlet 正在初始化 log4j日誌設定資訊");  
        String log4jLocation = config.getInitParameter("log4j-properties-location");  


        ServletContext sc = config.getServletContext();  


        if (log4jLocation == null) {  
            System.err.println("===>因為沒有 log4j-properties-location 初始化的檔案, 所以使用 BasicConfigurator初始化");  
            BasicConfigurator.configure();  
        } else {  
            String webAppPath = sc.getRealPath("/");  
            String log4jProp = webAppPath + log4jLocation;  
            File yoMamaYesThisSaysYoMama = new File(log4jProp);  
            if (yoMamaYesThisSaysYoMama.exists()) {  
                System.out.println("===>使用: " + log4jProp+"初始化日誌設定資訊");  
                PropertyConfigurator.configure(log4jProp);  
            } else {  
                System.err.println("===> " + log4jProp + " 檔案沒有找到, 所以使用 BasicConfigurator初始化");  
                BasicConfigurator.configure();  
            }  
        }  
        super.init(config);  
    }  


    /** 
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) 
     */  
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  
        // TODO Auto-generated method stub  
    }  


    /** 
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) 
     */  
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  
        // TODO Auto-generated method stub  

    }  

3.增加log4j.propertity(粘點重要的)

log4j.rootLogger =DEBUG,logfile

#log4j.addivity.org.apache=false

log4j.logger.*.*.*=DEBUG,test
log4j.additivity.*.*.*=false(很重要)
log4j.appender.test=org.apache.log4j.DailyRollingFileAppender
log4j.appender.test.File=(需要一個特定的路徑)
log4j.appender.test.Threshold=DEBUG
log4j.appender.R.DatePattern =yyyyMMdd'.log
log4j.appender.test.layout=org.apache.log4j.PatternLayout

log4j.appender.test.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n

4.啟動就可以了,這一段看了網上的大多的都沒有這麼全面的,希望能幫到大家。