Log4J 做一个简单的日志工具

    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 ]  
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值