001package com.ericlam.mc.eld.misc;
002
003import java.util.logging.Logger;
004
005/**
006 * 可用於 debug 的日誌輸出
007 */
008public interface DebugLogger {
009
010    /**
011     * debug 輸出
012     * @param message 訊息
013     * @param args 訊息參數 MessageFormat
014     */
015    void debug(String message, Object... args);
016
017    /**
018     * debug 輸出
019     * @param throwable 報錯物件
020     * @param message 訊息
021     * @param args 訊息參數 MessageFormat
022     */
023    void debug(Throwable throwable, String message, Object... args);
024
025
026    /**
027     * debug 輸出
028     * @param message 訊息
029     * @param args 訊息參數 String.format
030     */
031    void debugF(String message, Object... args);
032
033    /**
034     * debug 輸出
035     * @param throwable 報錯物件
036     * @param message 訊息
037     * @param args 訊息參數 String.format
038     */
039    void debugF(Throwable throwable, String message, Object... args);
040
041    /**
042     * debug 輸出
043     * @param throwable 報錯物件
044     */
045    void debug(Throwable throwable);
046
047    /**
048     * info 輸出
049     * @param message 訊息
050     * @param args 訊息參數 MessageFormat
051     */
052    void info(String message, Object... args);
053
054    /**
055     * info 輸出
056     * @param throwable 報錯物件
057     * @param message 訊息
058     * @param args 訊息參數 MessageFormat
059     */
060    void info(Throwable throwable, String message, Object... args);
061
062
063    /**
064     * info 輸出
065     * @param message 訊息
066     * @param args 訊息參數 String.format
067     */
068    void infoF(String message, Object... args);
069
070    /**
071     * info 輸出
072     * @param throwable 報錯物件
073     * @param message 訊息
074     * @param args 訊息參數 String.format
075     */
076    void infoF(Throwable throwable, String message, Object... args);
077
078    /**
079     * info 輸出
080     * @param throwable 報錯物件
081     */
082    void info(Throwable throwable);
083
084    /**
085     * warn 輸出
086     * @param message 訊息
087     * @param args 訊息參數 MessageFormat
088     */
089    void warn(String message, Object... args);
090
091    /**
092     * warn 輸出
093     * @param throwable 報錯物件
094     * @param message 訊息
095     * @param args 訊息參數 MessageFormat
096     */
097    void warn(Throwable throwable, String message, Object... args);
098
099
100    /**
101     * warn 輸出
102     * @param message 訊息
103     * @param args 訊息參數 String.format
104     */
105    void warnF(String message, Object... args);
106
107    /**
108     * warn 輸出
109     * @param throwable 報錯物件
110     * @param message 訊息
111     * @param args 訊息參數 String.format
112     */
113    void warnF(Throwable throwable, String message, Object... args);
114
115    /**
116     * warn 輸出
117     * @param throwable 報錯物件
118     */
119    void warn(Throwable throwable);
120
121    /**
122     * 獲取真正的 Logger
123     * @return Logger
124     */
125    Logger getRealLogger();
126
127}