⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 syslogger.java

📁 webwork study w ebwork study
💻 JAVA
字号:
package jaction.utility;

import org.apache.log4j.*;  //PropertyConfigurator
import jaction.utility.*; //UT
import java.util.*;
import java.io.*;
import jaction.workspace.JactionConfigResource;

/**
 * 日志处理工具类<br>
 * @author Weigang
 * @version $Revision: 1.0 $ 
 */
public class SysLogger {
    
    /**
     * log服务初始化标志. 默认值为false,
     * 第一次初始化之后标志位置为true,即不会进行第二次初始化
     */
    private static boolean initFlag = false;
    
    /**
     * log4j提供的log服务的引用
     */
    private static Logger logger = Logger.getLogger(SysLogger.class.getName());

	/**
	 * debug级别log的引用
	 */
    private static Logger debuglog = Logger.getLogger("debuglog");
	
	/**
	 * info级别log的引用
	 */
    private static Logger infolog = Logger.getLogger("infolog");
	
	/**
	 * warn级别log的引用
	 */
    private static Logger warnlog = Logger.getLogger("warnlog");
    
	/**
	 * error级别log的引用
	 */
    private static Logger errorlog = Logger.getLogger("errorlog");

	/**
	 * 日志文件
	 */
	public static final String JACTION_SYSLOGGER = JactionConfigResource.getMessage("jaction.syslogger");
	
	/**
	 * 初始化SysLogger
	 */
	static{
		PropertyConfigurator.configure(JACTION_SYSLOGGER);
            initFlag = true;
            FileUtil.log("SysLogger has been initialized.");
	}
    /**
     * 构造函数
     */
    public SysLogger() {
    }
    
    /**
     * debug级别的log方法,写入指定的文件
     * @param  className 类名
     * @param  methodName 方法名
     * @param  str 提示信息
     */
    public static void debugLog(String className, String methodName, String str){
        debug(className, methodName, str);
    }

    /**
     * debug级别的log方法,写入指定的文件
     * @param  str 提示信息
     */
    public static void debugLog(String str){
        debug(str);
    }

    /**
     * 程序状态信息的输出,写入指定的文件
     * @param  infoStr 提示信息
     */
    public static void infoLog(String infoStr){
    	info(infoStr);
    }
    
    /**
     * 读取log配置文件。
     */
    private static void init(){
    	if(initFlag == true){	
            return;	//已初始化,直接返回
    	}
    	else{
            PropertyConfigurator.configure(JACTION_SYSLOGGER);
            initFlag = true;
            FileUtil.log("SysLogger has been initialized.");
    	}
    }
    
    /**
     * debug级别的log方法,写入指定的文件
     * @param  className 类名
     * @param  methodName 方法名
     * @param  debugStr 提示信息
     */
    public static void debug(String className, String methodName, String debugStr){
    	init();
    	if (debugStr == null) debugStr = "";
        debuglog.debug(className + "." + methodName + "( ): " + debugStr);
    }

    /**
     * debug级别的log方法,写入指定的文件
     * @param  debugStr 提示信息
     */
    public static void debug(String debugStr){
    	init();
    	if (debugStr == null) debugStr = "";
    	debuglog.debug(debugStr);
    }
    
    /**
     * info级别的log方法,写入指定的文件
     * @param  className 类名
     * @param  methodName 方法名
     * @param  infoStr 提示信息
     */
    public static void info(String className, String methodName, String infoStr){
    	init();
    	if (infoStr == null) infoStr = "";
    	infolog.info(className + "." + methodName + "( ): " + infoStr);
    }

    /**
     * info级别的log方法,写入指定的文件
     * @param  infoStr 提示信息
     */
    public static void info(String infoStr){
    	init();
    	if(infoStr == null) infoStr = "";
    	infolog.info(infoStr);
    }
    
    /**
     * warn级别的log方法,写入指定的文件
     * @param  className 类名
     * @param  methodName 方法名
     * @param  warnStr 提示信息
     */
    public static void warn(String className, String methodName, String warnStr){
    	init();
    	if (warnStr == null) warnStr = "";
    	warnlog.warn(className + "." + methodName + "( ): " + warnStr);
    }

    /**
     * warn级别的log方法,写入指定的文件
     * @param  warnStr 提示信息
     */
    public static void warn(String warnStr){
    	init();
    	if (warnStr == null) warnStr = "";
    	warnlog.warn(warnStr);
    }
    
    /**
     * error级别的log方法,写入指定的文件
     * @param  className 类名
     * @param  methodName 方法名
     * @param  errorStr 提示信息
     */
    public static void error(String className, String methodName, String errorStr){
    	init();
    	if (errorStr == null) errorStr = "";
    	errorlog.error(className + "." + methodName + "( ): " + errorStr);
    }

    /**
     * error级别的log方法,写入指定的文件
     * @param  errorStr 提示信息
     */
    public static void error(String errorStr){
    	init();
    	if (errorStr == null) errorStr = "";
    	errorlog.error(errorStr);
    }

	/**
	 * 打印一维数组. 在一行内显示;例:
	 * name[]:    value0    value1    value2
	 * @param  array 要打印的数组
	 * @param  name 数组的名称
	 * @return  返回转换后的字符串
	 */
	public static String toString(String[] array, String name){
		if(array == null || name == null){
			debug("##### SysLogger toString null !!!");
			return null;
		}
		//debug("##### SysLogger toString != null");
		StringBuffer sb = new StringBuffer();
		int length = array.length;
		sb.append(name + "[]");
		for(int i = 0; i < length; i++){
			sb.append("\t" + array[i]);
		}
		return sb.toString();
	}

	/**
	 * 打印一维数组. 在一行内显示;例:
	 * name[]:    value0    value1    value2
	 * @param  array 要打印的数组
	 * @param  j 指定的数组的列
	 * @param  name 数组的名称
	 * @return  返回转换后的字符串
	 */
	public static String toString(String[] array, int j, String name){
		if(array == null || name == null){
			debug("##### SysLogger toString null !!!");
			return null;
		}
		//debug("##### SysLogger toString != null");
		StringBuffer sb = new StringBuffer();
		int length = array.length;
		sb.append(name + "[" + j + "][]");
		for(int i = 0; i < length; i++){
			sb.append("\t" + array[i]);
		}
		return sb.toString();
	}

	/**
	 * 打印二维数组. 每行显示一行数据;例:
	 * name[0][]:    value00    value01    value02
	 * name[1][]:    value10    value11    value12
	 * @param  array 要打印的二维数组
	 * @param  name 数组的名称
	 * @return  返回转换后的字符串
	 */
	public static String toString(String[][] array, String name){
		if(array == null || name == null){
			debug("##### SysLogger toString null !!!");
			return null;
		}
		//debug("##### SysLogger toString != null");
		StringBuffer sb = new StringBuffer();
		int rowLength = array.length;
		int colLength = array[0].length;
		for(int i = 0; i < rowLength; i++){
			sb.append(name + "[" + i + "][]");
			for(int j = 0; j < colLength; j++){
				sb.append("\t" + array[i][j]);
			}
			if(i < rowLength){
				sb.append("\n");
			}
		}
		return sb.toString();
	}

    /**
    * SysLogger所提供的功能的测试函数
    */
    public static void main (String args[]) throws Exception {
    	/*for (int i = 0; i < 10; i++){
    		warn("dmslog" + i);
    		info("dmsinfolog" + i);
    		debug("dmsdebuglog" + i);
    		error("dmserrorlog" + i);
    	}
    	*/
    	testToString();
    	testToString1();
    }

	/**
	 * 测试函数
	 */
	public static void  testToString(){
		String[] array = new String[5];
		for(int i = 0; i < array.length; i++){
			array[i] = String.valueOf(i);
		}
		System.out.println(toString(array, "array"));
	}

	/**
	 * 测试函数
	 */
	public static void  testToString1(){
		String[][] array = new String[5][5];
		for(int i = 0; i < array.length; i++){
			for(int j = 0; j < array[0].length; j++){
				array[i][j] = String.valueOf(i + j);
			}
		}
		System.out.println(toString(array, "array"));
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -