免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1131 | 回复: 0
打印 上一主题 下一主题

How to use log4j [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-09-14 18:40 |只看该作者 |倒序浏览

Don't use System.out.println!
We should use log4j or other logger. this is my simple guide to use log4j in project.
import org.apache.log4j.Category;
import org.apache.log4j.PropertyConfigurator;
import org.apache.log4j.Priority;
import java.io.Serializable;
import java.io.FileInputStream;
import java.util.Properties;
import java.util.Enumeration;
import java.util.Hashtable;
/**
* A wrapper tool class wrap log4j Category.
* Usage:   Logger log = Logger.getLogger(Logger.class.getName());
*          log.info("Just testing a log message with priority set to INFO");
            log.warn("Just testing a log message with priority set to WARN");
* User: tango
* Date: 2005-9-15 * Time: 14:08:50
*
*/
public class Logger implements Serializable {
   
    private Category cat;
    private static Properties prop = null;
    private static Hashtable LogObjects = new Hashtable();
    private static final String profile ="log4j.properties";
    private StringBuffer buffer=new StringBuffer("");
   
    /**
     *  The constructor.
     *
     
[email=*@param]*@param[/email]
  name  The logger's name. This name distinguish logger object one another.
     
[email=*@since]*@since[/email]
        1.0
     */
    public Logger(String name, String logConfFileName) {
        if (prop == null){
            prop = new Properties();
            try{
                if(logConfFileName!=null) prop.load(new FileInputStream(logConfFileName));
            }catch(Exception e){
                e.printStackTrace();
            }
            PropertyConfigurator.configure(prop);
        }
        
        cat = Category.getInstance(name);
    }
    public Logger(String name, String logConfFileName,String logFilePath) {
        if (prop == null){
            prop = new Properties();
            try{
                prop.load(new FileInputStream(logConfFileName));
            }catch(Exception e){
                e.printStackTrace();
            }
            if (!logFilePath.endsWith(System.getProperty("file.separator"))){
                logFilePath += System.getProperty("file.separator");
            }
            
            // If the log file is relative path, put it into the Log home.
            Enumeration keys = prop.propertyNames();
            while (keys.hasMoreElements()) {
                String key = (String)keys.nextElement();
                if(key.indexOf(".File")>0){
                    String fileName = prop.getProperty(key);
                    if (!(fileName.startsWith(System.getProperty("file.separator"))||fileName.indexOf(":")>0)){
                        fileName = logFilePath+fileName;
                        prop.setProperty(key,fileName);
                    }
                }
               
            }
            PropertyConfigurator.configure(prop);
        }
        
        cat = Category.getInstance(name);
        
    }
   
    public static Logger getLogger(String name) {
        //Logger logger = super.getLogger(name);
        if (LogObjects.containsKey(name)) {
            return (com.wesoft.vugo.util.Logger)LogObjects.get(name);
        }
        Logger _newLogger = new Logger(name,null); //find the profile by default class directory
        LogObjects.put(name, _newLogger);
        return _newLogger;
    }
   
    /**
     *  Log a FATAL message.
     *
     *  If the logger is currently enabled for the FATAL message level then the
     *   given message is forwarded to all the registered output Handler objects.
     *
     
[email=*@param]*@param[/email]
  message  The string message (or a key in the message catalog)
     
[email=*@since]*@since[/email]
           1.0
     */
    public void fatal(String message) {
        //cat.log(Level.SEVERE, message);
        cat.fatal(message);
    }
   
    public void fatal(Object obj){
        buffer=new StringBuffer("");
        if(obj instanceof Exception){
            StackTraceElement[] trace = ((Exception)obj).getStackTrace();
            buffer.append(obj.toString());
            for (int i=0; i
---------------------------------------------------
Put the log4j.properties in your classpath
--------------------------------------------------
###############################################################################
#              LOG4J CONFIGURATION FILE                                                                                                                     #
#Author:Tango Tang                                                                                                                                                 #
#Date  :2005/9/15                                                                                                                                                   #
###############################################################################
!----------------------####### BEGIN OF PROPERTIES #######----------------------!
#log4j.rootLogger= WARN, FILE, CONSOLE, ROLLING_FILE
log4j.rootLogger= WARN, FILE, CONSOLE
########################
# Console Appender
########################
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Target=System.out
log4j.appender.CONSOLE.Threshold=WARN
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss}] %c{1}.%t - %-6p - %m%n
########################
# File Appender
########################
log4j.appender.FILE=org.apache.log4j.RollingFileAppender
log4j.appender.FILE.File=vugo.log
log4j.appender.FILE.Threshold=DEBUG
log4j.appender.FILE.Append=true
log4j.appender.FILE.MaxFileSize=1000KB
log4j.appender.FILE.MaxBackupIndex=20
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss}] %c{1}.%t - %-5p - %m%n
########################
# Rolling File Appender
########################
log4j.appender.ROLLING_FILE=org.apache.log4j.RollingFileAppender
log4j.appender.ROLLING_FILE.Threshold=ERROR
log4j.appender.ROLLING_FILE.File=vugo_rolling.log
log4j.appender.ROLLING_FILE.Append=true
log4j.appender.ROLLING_FILE.MaxFileSize=1000KB
log4j.appender.ROLLING_FILE.MaxBackupIndex=20
log4j.appender.ROLLING_FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.ROLLING_FILE.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss}] %c{1}.%t - %-5p - %m%n
!----------------------####### END OF PROPERTIES #######----------------------!


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/9924/showart_47609.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP