⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 logger.java

📁 Excel Report是一款基于Excel的报表生成工具
💻 JAVA
字号:
package net.excel.report;

/**
 * Abstract wrapper class for the logging interface of choice. The methods
 * declared here are the same as those for the log4j
 */
public abstract class Logger {

    private static Logger logger = null;

    /**
     * Factory method to return the logger
     */
    public static final Logger getLogger(Class cl) {
        if (logger == null) {
            initializeLogger();
        }

        return logger.getLoggerImpl(cl);
    }

    /**
     * Initializes the logger in a thread safe manner
     */
    private synchronized static void initializeLogger() {
        if (logger != null) {
            return;
        }

        String loggerName = "";

        try {
            // First see if there was anything defined at run time
            loggerName = System.getProperty("logger");
            
            Object log = null;
            if((log = getLoggerInstances(loggerName)) == null){
                //不能从System property中取得logger 则尝试从ReportEngine中去取。
                loggerName = ReportEngine.getLogger();
                log = getLoggerInstances(loggerName);
            }
            if(null != log){
                logger = (Logger)log;
            }else{
                loadDefaultLogger();
            }
        }finally{
            
        }
    }
    
    private static Object getLoggerInstances(String className){
        Object log = null;
        if (null != className) {
            try {
                log = Class.forName(className).newInstance();
            } catch (InstantiationException e) {
                ;
            } catch (IllegalAccessException e) {
                ;
            } catch (ClassNotFoundException e) {
                ;
            }
            if(!(log instanceof Logger)){
                log = null;
            }
        }
        return log;
    }
    
    /*
     * 装载默认的logger实现
     */
    private static void loadDefaultLogger() {
        logger = new net.excel.report.SimpleLogger();
        logger.warn("Could not instantiate logger, using default.(SimpleLogger)");
    }

    /**
     * Constructor
     */
    protected Logger() {
    }

    /**
     * Log a debug message
     */
    public abstract void debug(Object message);

    /**
     * Log a debug message and exception
     */
    public abstract void debug(Object message, Throwable t);

    /**
     * Log an error message
     */
    public abstract void error(Object message);

    /**
     * Log an error message object and exception
     */
    public abstract void error(Object message, Throwable t);

    /**
     * Log a fatal message
     */
    public abstract void fatal(Object message);

    /**
     * Log a fatal message and exception
     */
    public abstract void fatal(Object message, Throwable t);

    /**
     * Log an information message
     */
    public abstract void info(Object message);

    /**
     * Logs an information message and an exception
     */
    public abstract void info(Object message, Throwable t);

    /**
     * Log a warning message object
     */
    public abstract void warn(Object message);

    /**
     * Log a warning message with exception
     */
    public abstract void warn(Object message, Throwable t);

    /**
     * Accessor to the logger implementation
     */
    protected abstract Logger getLoggerImpl(Class cl);

    /**
     * Empty implementation of the suppressWarnings. Subclasses may or may not
     * override this method. This method is included primarily for backwards
     * support of the jxl.nowarnings property, and is used only by the
     * SimpleLogger
     * 
     * @param w
     *            suppression flag
     */
    public void setSuppressWarnings(boolean w) {
        // default implementation does nothing
    }
    
    public boolean isDebugEnable(){
        return false;
    }
    
    public boolean isInfoEnable(){
        return false;
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -