📄 syslogger.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 + -