电脑技术学习

自己做一个简单的日志工具

dn001
内容: 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;

/**
*


* Title: 日志处理类,这是一个不使用LOG4J的轻量级的处理方法
*


*


* Description: 日志处理
*


*


* Copyright: Copyright (c) 2005
*


*


* Company: GingerSoftware
*


*
* @author ginger547
* @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 Java, java, J2SE, j2se, J2EE, j2ee, J2ME, j2me, ejb, ejb3, JBOSS, jboss, spring, hibernate, jdo, struts, webwork, ajax, AJAX, mysql, MySQL, Oracle, Weblogic, Websphere, scjp, scjd Log4J 我相信大部分的Java程序员应该不会很陌生,它对错误的调试,日志的输出,等等都很有帮助,其实自己也完全可以做一个简单的实用的功能齐全的日志工具.下面就把我在开发一个自己的framework的时候做的一个日志类帖出来,希望对大家有所帮助,做的有些粗陋,希望大家不要见笑才是.

package com.ginger.framework.log;
标签: