当前页面: 开发资料首页 → Java 专题 → 自己做一个简单的日志工具
摘要: 自己做一个简单的日志工具
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);
}
}
package com.ginger.framework.log;
↑返回目录
前一篇: eclipse3.1尝鲜饭-新功能和插件快照
后一篇: Peer-to-Peer Sockets 工程入门