java 日志技术汇总(log4j , Commons-logging,.....)

前言

 

在Tomcat 与weblogic 中的 日志(log4j) 配置系列一

在系列一 中, 有一个问题一直没有解决,就是部署到weblogic 中应用程序如何通过log4j写日志到文件中?

 

这里仅仅使用log4j, 而不使用 commons-logging, 关于log4j 和commons-logging的区别和关联,请参考

 

java 日志技术汇总(log4j , Commons-logging,.....)

 

 

 

一个web 项目实例

 

这个实例很简单,就是定义一个servlet, 用来写日志

1. 使用eclipse 创建一个动态web 项目, 导入log4j.jar 包

2. 创建一个servlet 类

 

/**   

 * @author oscar999   

 * @date 2013-7-31

 * @version V1.0   

 */

package com.oscar999;



import java.io.IOException;

import java.io.PrintWriter;



import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;



import org.apache.log4j.Logger;

import org.apache.log4j.PropertyConfigurator;



public class LogServlet extends HttpServlet {



	private static final long serialVersionUID = 1L;



	public void service(HttpServletRequest req, HttpServletResponse res) {



		testLog4j();

		try {

			PrintWriter out = res.getWriter();

			out.println("<Hr><h1>Please check the Logs Are generated in .log or Not .....");

		} catch (IOException e) {

			// TODO Auto-generated catch block

			e.printStackTrace();

		}

	}



	public void testLog4j() {

		Logger log = Logger.getLogger(LogServlet.class);

		PropertyConfigurator.configure("log4j.properties");

		log.debug("Debug info.");

		log.info("Info info");

		log.warn("Warn info");

		log.error("Error info");

		log.fatal("Fatal info");

	}



}


3. 在web.xml 中添加servlet 配置

 

 

<?xml version="1.0" encoding="UTF-8"?>

<!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>logTestApp</display-name>

  

  <servlet>

  	<servlet-name>LogServlet</servlet-name>

  	<servlet-class>com.oscar999.LogServlet</servlet-class>

  	<load-on-startup>2</load-on-startup>

  </servlet>

  <servlet-mapping>

  	<servlet-name>LogServlet</servlet-name>

  	<url-pattern>/logServlet</url-pattern>

  </servlet-mapping>

  

  <welcome-file-list>

    <welcome-file>index.html</welcome-file>

    <welcome-file>index.htm</welcome-file>

    <welcome-file>index.jsp</welcome-file>

    <welcome-file>default.html</welcome-file>

    <welcome-file>default.htm</welcome-file>

    <welcome-file>default.jsp</welcome-file>

  </welcome-file-list>

</web-app>


4. 编写一个 log4j.properties 文件

 

 

log4j.rootLogger=debug,stdout,logfile

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n



log4j.appender.logfile=org.apache.log4j.RollingFileAppender

log4j.appender.logfile.File=logfile.log

log4j.appender.logfile.MaxFileSize=512KB

log4j.appender.logfile.MaxBackupIndex=3

log4j.appender.logfile.layout=org.apache.log4j.PatternLayout

log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n


5.  把log4j.properties文件放入 user_projects\domains\base_domain 下。(base_domain是这里使用的domain name, 如果domain name 不一样,应该知道要怎么做了)

 

因为上面servlet 中,读取log4j  的配置是 PropertyConfigurator.configure("log4j.properties");

这样就直接到  base_domain的路径下去找log4j.properties。

在log4j.properties配置产生的日志文件 logfile.log默认也会放到  base_domain目录下,

也可以修改, 建议是可以放到 “base_domain\servers\AdminServer\logs” 这个目录下。

 

6. 接下来通过 http://localhost:8080/appname/servletname

访问就可以了

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(commons)