All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.uetty.common.tool.core.LogTool Maven / Gradle / Ivy

package com.uetty.common.tool.core;

import org.slf4j.Logger;

@SuppressWarnings("unused")
public class LogTool {

	static String CONTAIN_STR = "uetty";
	
	
	/**
	 * 打印完整类名包含字符串"uetty"的日志
	 * @param logger logger实例
	 * @param e 异常实例
	 */
	public static void printStackTraceOnlyUetty(Logger logger, Throwable e) {
		printStackTraceOnlyClassNameContain(logger, e, CONTAIN_STR, null);
	}
	
	/**
	 * 打印完整类名包含特定字符串的日志
	 * @param logger logger实例
	 * @param e 异常实例
	 * @param containStr 筛选包含的字符串
	 */
	public static void printStackTraceOnlyClassNameContain(Logger logger, Throwable e, String containStr) {
		printStackTraceOnlyClassNameContain(logger, e, containStr, null);
	}
	
	/**
	 * 仅打印完整类名包含指定字符串的日志
	 * @param logger logger对象
	 * @param e 异常
	 * @param containStr 筛选包含的字符串
	 * @param sb string builder
	 */
	private static void printStackTraceOnlyClassNameContain(Logger logger, Throwable e, String containStr,  StringBuilder sb) {
		if (e == null) return;
		if (sb == null) {
			sb = new StringBuilder();
		}
		sb.append("Exception : ").append(e.getMessage()).append("\n");
		StackTraceElement[] stackTraces = e.getStackTrace();
		for (StackTraceElement trace : stackTraces) {
			if (trace.getClassName().contains("starnet")) {
				sb.append("\tat ").append(trace.toString()).append("\n");
			}
		}
		Throwable[] suppressed = e.getSuppressed();
		for (Throwable throwable : suppressed) {
			printStackTraceOnlyClassNameContain(logger, throwable, containStr, sb);
		}
		Throwable cause = e.getCause();
		printStackTraceOnlyClassNameContain(logger, cause, containStr, sb);
		if (suppressed.length == 0 && cause == null) {
			logger.error(sb.toString());
		}
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy