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

com.xiaoleilu.hutool.log.StaticLog Maven / Gradle / Ivy

package com.xiaoleilu.hutool.log;

import com.xiaoleilu.hutool.lang.Caller;
import com.xiaoleilu.hutool.log.level.Level;
import com.xiaoleilu.hutool.util.StrUtil;

/**
 * 静态日志类,用于在不引入日志对象的情况下打印日志
 * @author Looly
 *
 */
public final class StaticLog {
	private static final String FQCN = StaticLog.class.getName();
	
	private StaticLog() {}
	
	// ----------------------------------------------------------- Log method start
	// ------------------------ Trace
	/**
	 * Trace等级日志,小于debug
* 由于动态获取Log,效率较低,建议在非频繁调用的情况下使用!! * * @param format 格式文本,{} 代表变量 * @param arguments 变量对应的参数 */ public static void trace(String format, Object... arguments) { trace(LogFactory.get(Caller.getCallerCaller()), format, arguments); } /** * Trace等级日志,小于Debug * * @param log 日志对象 * @param format 格式文本,{} 代表变量 * @param arguments 变量对应的参数 */ public static void trace(Log log, String format, Object... arguments) { if(false == log(log, Level.TRACE, null, format, arguments)){ log.trace(format, arguments); } } // ------------------------ debug /** * Debug等级日志,小于Info
* 由于动态获取Log,效率较低,建议在非频繁调用的情况下使用!! * * @param format 格式文本,{} 代表变量 * @param arguments 变量对应的参数 */ public static void debug(String format, Object... arguments) { debug(LogFactory.get(Caller.getCallerCaller()), format, arguments); } /** * Debug等级日志,小于Info * * @param log 日志对象 * @param format 格式文本,{} 代表变量 * @param arguments 变量对应的参数 */ public static void debug(Log log, String format, Object... arguments) { if(false == log(log, Level.DEBUG, null, format, arguments)){ log.debug(format, arguments); } } // ------------------------ info /** * Info等级日志,小于Warn
* 由于动态获取Log,效率较低,建议在非频繁调用的情况下使用!! * * @param format 格式文本,{} 代表变量 * @param arguments 变量对应的参数 */ public static void info(String format, Object... arguments) { info(LogFactory.get(Caller.getCallerCaller()), format, arguments); } /** * Info等级日志,小于Warn * * @param log 日志对象 * @param format 格式文本,{} 代表变量 * @param arguments 变量对应的参数 */ public static void info(Log log, String format, Object... arguments) { if(false == log(log, Level.INFO, null, format, arguments)){ log.info(format, arguments); } } // ------------------------ warn /** * Warn等级日志,小于Error
* 由于动态获取Log,效率较低,建议在非频繁调用的情况下使用!! * * @param format 格式文本,{} 代表变量 * @param arguments 变量对应的参数 */ public static void warn(String format, Object... arguments) { warn(LogFactory.get(Caller.getCallerCaller()), format, arguments); } /** * Warn等级日志,小于Error * * @param log 日志对象 * @param format 格式文本,{} 代表变量 * @param arguments 变量对应的参数 */ public static void warn(Log log, String format, Object... arguments) { warn(log, null, format, arguments); } /** * Warn等级日志,小于Error
* 由于动态获取Log,效率较低,建议在非频繁调用的情况下使用!! * * @param e 需在日志中堆栈打印的异常 * @param format 格式文本,{} 代表变量 * @param arguments 变量对应的参数 */ public static void warn(Throwable e, String format, Object... arguments) { warn(LogFactory.get(Caller.getCallerCaller()), e, StrUtil.format(format, arguments)); } /** * Warn等级日志,小于Error * * @param log 日志对象 * @param e 需在日志中堆栈打印的异常 * @param format 格式文本,{} 代表变量 * @param arguments 变量对应的参数 */ public static void warn(Log log, Throwable e, String format, Object... arguments) { if(false == log(log, Level.TRACE, e, format, arguments)){ log.warn(e, format, arguments); } } // ------------------------ error /** * Error等级日志
* 由于动态获取Log,效率较低,建议在非频繁调用的情况下使用!! * * @param e 需在日志中堆栈打印的异常 */ public static void error(Throwable e) { error(LogFactory.get(Caller.getCallerCaller()), e); } /** * Error等级日志
* * @param log 日志对象 * @param e 需在日志中堆栈打印的异常 */ public static void error(Log log, Throwable e) { error(log, e, e.getMessage()); } /** * Error等级日志
* 由于动态获取Log,效率较低,建议在非频繁调用的情况下使用!! * * @param format 格式文本,{} 代表变量 * @param arguments 变量对应的参数 */ public static void error(String format, Object... arguments) { error(LogFactory.get(Caller.getCallerCaller()), format, arguments); } /** * Error等级日志
* * @param log 日志对象 * @param format 格式文本,{} 代表变量 * @param arguments 变量对应的参数 */ public static void error(Log log, String format, Object... arguments) { error(log, null, format, arguments); } /** * Error等级日志
* 由于动态获取Log,效率较低,建议在非频繁调用的情况下使用!! * * @param e 需在日志中堆栈打印的异常 * @param format 格式文本,{} 代表变量 * @param arguments 变量对应的参数 */ public static void error(Throwable e, String format, Object... arguments) { error(LogFactory.get(Caller.getCallerCaller()), e, format, arguments); } /** * Error等级日志
* * @param log 日志对象 * @param e 需在日志中堆栈打印的异常 * @param format 格式文本,{} 代表变量 * @param arguments 变量对应的参数 */ public static void error(Log log, Throwable e, String format, Object... arguments) { if(false == log(log, Level.ERROR, e, format, arguments)){ log.error(e, format, arguments); } } // ------------------------ Log /** * 打印日志
* * @param level 日志级别 * @param t 需在日志中堆栈打印的异常 * @param format 格式文本,{} 代表变量 * @param arguments 变量对应的参数 * @return 是否为LocationAwareLog日志 */ public static boolean log(Level level, Throwable t, String format, Object... arguments) { return log(LogFactory.get(Caller.getCallerCaller()), level, t, format, arguments); } /** * 打印日志
* * @param log 日志对象 * @param level 日志级别 * @param t 需在日志中堆栈打印的异常 * @param format 格式文本,{} 代表变量 * @param arguments 变量对应的参数 * @return 是否为LocationAwareLog日志 */ public static boolean log(Log log, Level level, Throwable t, String format, Object... arguments) { if(log instanceof LocationAwareLog){ ((LocationAwareLog) log).log(FQCN, level, t, format, arguments); return true; }else{ return false; } } // ----------------------------------------------------------- Log method end /** * 获得Log * @param clazz 日志发出的类 * @return Log */ public static Log get(Class clazz) { return LogFactory.get(clazz); } /** * 获得Log * @param name 自定义的日志发出者名称 * @return Log */ public static Log get(String name) { return LogFactory.get(name); } /** * @return 获得日志,自动判定日志发出者 */ public static Log get() { return LogFactory.get(Caller.getCallerCaller()); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy