封装log4j

Log4jImpl.java //Log4j的实现类

package com.ynwst.enterprise.sys;

/**
*

Title:


*

Description:


*

Copyright: Copyright (c) 2003 xiaowugui


*

Company:http://www.ynwst.com


* @author xiaowugui
* @version 1.0
*/

import org.apache.log4j.*;
import java.io.*;
import java.util.*;

/**
* @author Administrator
*
* To change the template for this generated type comment go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
public class Log4jImpl
{
public static final String PROFILE = "log4j.properties";
/**
* Holds singleton instance
*/
private static Log4jImpl impl;

static
{
impl = new Log4jImpl();
}

private Logger log4j;

/**
* prevents instantiation
*/
private Log4jImpl()
{
log4j = LogManager.getLogger(Log4jImpl.class);
try
{
Properties pro = new Properties();
InputStream is = getClass().getResourceAsStream(PROFILE);
pro.load(is);
PropertyConfigurator.configure(pro);
}
catch(IOException e)
{
BasicConfigurator.configure();
e.printStackTrace();
}
}

public void log(String level,Object msg)
{
log(level,msg,null);
}
public void log(String level,Throwable e)
{
log(level,null,e);
}
public void log(String level,Object msg,java.lang.Throwable e)
{
if(log4j != null)
{
log4j.log((Priority)Level.toLevel(level),msg,e);
}
}
/**
* 单例模式
*/
static public Log4jImpl getInstance()
{
return impl;
}
}



Log.java //记录Log使用类
package com.ynwst.enterprise.sys;

/**
*

Title:


*

Description:


*

Copyright: Copyright (c) 2003 xiaowugui


*

Company:


* @author xiaowugui
* @version 1.0
*/

public class Log
{
private static Log4jImpl log = Log4jImpl.getInstance();
/**
*
*/
public Log()
{
//super();
}

public static void logError(String msg)
{
log.log("ERROR",msg);
}

public static void logError(Throwable e)
{
log.log("ERROR",null,e);
}

public static void logWarn(String msg)
{
log.log("WARN",msg);
}

public static void logWarn(Throwable e)
{
log.log("WARN",null,e);
}

public static void logInfo(String msg)
{
log.log("INFO",msg);
}

public static void logInfo(Throwable e)
{
log.log("INFO",null,e);
}

public static void logDebug(String msg)
{
log.log("DEBUG",msg);
}

public static void logDebug(Throwable e)
{
log.log("DEBUG",null,e);
}
}


log4j.properties //Log4j配置文件
log4j.rootLogger=DEBUG, A2, A1
log4j.appender.A2=org.apache.log4j.RollingFileAppender
log4j.appender.A2.File=G:/enterprise/log/error.log
log4j.appender.A2.Append=true
log4j.appender.R.MaxFileSize=10000KB
log4j.appender.A2.layout=org.apache.log4j.PatternLayout
log4j.appender.A2.layout.ConversionPattern=[%-5p][%t] %d{yyyy-MM-dd HH:mm:ss,SSS} message:%m%n

log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
#Pattern to output the caller's file name and line number.
#log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n
# Print the date in ISO 8601 format
log4j.appender.A1.layout.ConversionPattern=%d [%t] %-5p - %m%n


testLog.jsp //调用Log类
<%@ page language="java" pageEncoding="GBK" %>
<%@ page import = "com.ynwst.enterprise.sys.Log" %>
<%
Log.logDebug("DEBUG");
Log.logInfo("INFO");
Log.logWarn("WARN");
Log.logError("ERROR");
try
{
int i = Integer.parseInt("xxx");
}catch(Exception e)
{
Log.logDebug(e.toString());
Log.logInfo(e.toString());
Log.logWarn(e.toString());
Log.logError(e.toString());
}
%>

注:使用此方法封装Log4j的操作,可以使记录日志变得更方便。唯一不足的是无法返回当前类的相关信息,不过还好,我的错误信息都是自己定义的,所以一般在记录错误信息的时候,都会自己把当前类的相关信息做一个标识。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值