Java编写日志类-精确到行

废话不多说,直接上代码,copy就能用,包含打印普通,错误日志,会输出 调用的 信息 精确到行,如果对您有用 请点个赞吧~

后续进行优化的日志类-保存日志信息 根据普通日志以及错误日志 以及每天都会更换 一个日志类

优化的日志类https://blog.csdn.net/qq_41806966/article/details/102850559

/**
 * -日志类
 * @author Shendi
 */
public class Log {
	//是否开启日志 默认开启
	private static boolean isLog = true;
	
	/**
	 * -输出日志
	 * @param obj
	 */
	public static void print(Object obj) {
		//日志开启才输出
		if (isLog) {
			//获取堆栈跟踪信息
			StackTraceElement callInfo = getStackTraceInfo();
			System.out.println(callInfo.getClassName()+"."+callInfo.getMethodName()+"()."+callInfo.getLineNumber()
					+ ">"+obj);
		}
	}
	
	/**
	 * -输出错误日志
	 * @param obj
	 */
	public static void printErr(Object obj) {
		//日志开启才输出
		if (isLog) {
			//获取堆栈跟踪信息
			StackTraceElement callInfo = getStackTraceInfo();
			System.err.println(callInfo.getClassName()+"."+callInfo.getMethodName()+"()."+callInfo.getLineNumber()
					+ ">"+obj);
		}
	}
	
	/**
	 * -获取堆栈跟踪信息 获取调用者的调用者
	 * @return 信息
	 */
	private static StackTraceElement getStackTraceInfo() {
		StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace();
		StackTraceElement callInfo = stackTraceElements[3];
		return callInfo;
	}
	
	/**
	 * -设置是否开启日志 true开启 false关闭
	 * @param isLog
	 */
	public static void setIsLog(boolean isLog) {
		StackTraceElement callInfo = getStackTraceInfo();
		System.err.println(callInfo.getClassName()+"."+callInfo.getMethodName()+"()."+callInfo.getLineNumber()
		+ ">设置了日志:"+isLog);
		Log.isLog = isLog;
	}
	
}
发布了38 篇原创文章 · 获赞 23 · 访问量 9069

猜你喜欢

转载自blog.csdn.net/qq_41806966/article/details/102529664