【Log4j】ログのツールーSpringBoot

发布时间 2023-06-05 17:06:16作者: 农民工024

ログのUtilクラス:

package com.example.demoaop.common;

import com.sun.deploy.config.DefaultConfig;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.util.HashMap;
import java.util.Map;

public class LogUtils {

    /**
     * 系统默认配置
     */
    private static DefaultConfig defaultConfig;

    /**
     * 本工具类的静态实例
     */
    private static LogUtils instance;

    /**
     * Logger实例
     */
    private static Logger logger = null;

    /**
     * 用于存储Logger对象集合
     */
    private static Map<Class, Logger> loggerMap = new HashMap<>();

    private LogUtils(){
        //System.out.println("构造函数");
    }

    /**
     * 初始静态实例(Object)
     * @param obj
     * @return
     */
    public synchronized static LogUtils getInstance(Object obj){
        if(instance == null){
            instance = new LogUtils();
        }
        //获取Logger实例
        LogUtils.logger = loggerMap.get(obj.getClass());
        if(LogUtils.logger == null){
            //利用Logger工厂获取Logger实例
            LogUtils.logger = LoggerFactory.getLogger(obj.getClass());
            //将调用Logger的类装载到Map中。
            loggerMap.put(obj.getClass(),LogUtils.logger);
        }
        return instance;
    }

    /**
     * 初始静态实例(Class)
     * @param clazz
     * @return
     */
    public synchronized static LogUtils getInstance(Class clazz){
        if(instance == null){
            instance = new LogUtils();
        }
        //获取Logger实例
        LogUtils.logger = loggerMap.get(clazz);
        if(LogUtils.logger == null){
            //利用Logger工厂获取Logger实例
            LogUtils.logger = LoggerFactory.getLogger(clazz);
            //将调用Logger的类装载到Map中。
            loggerMap.put(clazz,LogUtils.logger);
        }
        return instance;
    }

    private static void setBean(){
        setDefaultConfig();
    }

    private static void setDefaultConfig(){

    }

    /**
     * info消息(无参)
     * @param message
     */
    public void info(String message){
        LogUtils.logger.info(message);
    }

    /**
     * info消息(有参)
     * @param message
     * @param args
     */
    public void info(String message,Object... args){
        LogUtils.logger.info(message,args);
    }

    /**
     * debug消息(无参)
     * @param message
     */
    public void debug(String message){
        LogUtils.logger.debug(message);
    }
    /**
     * info消息(有参)
     * @param message
     * @param args
     */
    public void debug(String message,Object... args){
        LogUtils.logger.debug(message,args);
    }

    /**
     * error消息(无参)
     * @param message
     */
    public void error(String message){
        LogUtils.logger.error(message);
    }
    /**
     * info消息(有参)
     * @param message
     * @param args
     */
    public void error(String message,Object... args){
        LogUtils.logger.error(message,args);
    }

    /**
     * warn消息(无参)
     * @param message
     */
    public void warn(String message){
        LogUtils.logger.warn(message);
    }
    /**
     * warn消息(有参)
     * @param message
     * @param args
     */
    public void warn(String message,Object... args){
        LogUtils.logger.warn(message,args);
    }
}