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;
标签:
上一篇 Java类加载内幕