您的位置:首页 > 其它

Log4J 做一个简单的日志工具

2007-09-05 22:23 483 查看
Log4J 我相信大部分的Java程序员应该不会很陌生,它对错误的调试,日志的输出,等等都很有帮助,其实自己也完全可以做一个简单的实用的功能齐全的日志工具.下面就把我在开发一个自己的framework的时候做的一个日志类帖出来,希望对大家有所帮助,做的有些粗陋,希望大家不要见笑才是.

package com.ginger.framework.log;

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;

import com.ginger.framework.properties.Properties;

/**
* <p>
* Title: 日志处理类,这是一个不使用LOG4J的轻量级的处理方法
* </p>
* <p>
* Description: 日志处理
* </p>
* <p>
* Copyright: Copyright (c) 2005
* </p>
* <p>
* Company: GingerSoftware
* </p>
*
* @author <a href="mailto:ginger547@mail.csdn.net">ginger547</a>
* @version 1.0
*/
public final class Logger {
// 全局判断是不是要输出
private static boolean isLog = true;

// 使用LOGGER的类的名字
private static String className = "None";

// 是否初始化
public static boolean isInited = false;

// 日志
public static PrintWriter logWriter = null;

// 日期格式
private static SimpleDateFormat dateFormat = null;

/**
* 日志初始化
*
* @throws Exception
*/

public static void init() throws Exception {

if (isInited)
return;
try {
// 是否在原来的文件上追加
if (Properties.logType.equalsIgnoreCase("Append"))
logWriter = new PrintWriter(new BufferedWriter(new FileWriter(
Properties.logFile, true)), true);
else
logWriter = new PrintWriter(new BufferedWriter(new FileWriter(
Properties.logFile, false)), true);

dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
isInited = true;
} catch (Exception e) {
System.out.println("logWriter initlizes failure!");
throw e;
}
}

/**
* 写日志
*
* @param logLevel
*            等级
* @param logInfo
*            log信息
*/
private static void log(int logLevel, String logInfo, Class classIn) {
//                if (!isInited || logLevel <= Properties.logLevel || !isLog)
if(!isInited)
return;
className = classIn.getName();
try {
if(logLevel<=Properties.logLevel){
java.sql.Timestamp time = new java.sql.Timestamp(System
.currentTimeMillis());
if (logLevel == 1) {
logWriter.print("在类" + className + "中产生[错误信息 "
+ dateFormat.format(time) + "] " + logInfo);
// 是否在控制台显示
if (Properties.ScreenLog)
System.out.println("在类" + className + "中产生[错误信息 "
+ dateFormat.format(time) + "] " + logInfo);

} else if (logLevel == 2) {
logWriter.print("在类" + className + "中产生[一般信息 "
+ dateFormat.format(time) + "] " + logInfo);

if (Properties.ScreenLog)
System.out.println("在类" + className + "中产生[一般信息 "
+ dateFormat.format(time) + "] " + logInfo);

} else {
logWriter.print("在类" + className + "中产生[详细信息 "
+ dateFormat.format(time) + "] " + logInfo);

if (Properties.ScreenLog)
System.out.println("在类" + className + "中产生[详细信息 "
+ dateFormat.format(time) + "] " + logInfo);

}
}
logWriter.println();
} catch (Exception e) {
System.out.println("Write LogFile Faulure [" + e.toString() + "]");
}
}

/**
* 写一般信息
*
* @param logInfo
*            String
*/
public static void info(String logInfo, Class classIn) {
log(2, logInfo, classIn);
}

/**
* 写调试信息
*
* @param logInfo
*            String
*/
public static void detail(String logInfo, Class classIn) {
log(3, logInfo, classIn);
}

/**
* 写错误信息
*
* @param logInfo
*            String
*/
public static void error(String logInfo, Class classIn) {
log(1, logInfo, classIn);
}

}


当中有我另外一个类,是读取属性文件的,你可以把读取属性文件的部分替换成自己的部分,就可以使用了.

源代码下载:
[Download File]
[Download File]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: