| #!/usr/bin/python  | 
| # -*- coding: GBK -*-  | 
| #  | 
| ##@package  | 
| #  | 
| # @todo:   | 
| #  | 
| # @author: Alee  | 
| # @date 2018-7-18 ÉÏÎç11:40:23  | 
| # @version 1.0  | 
| #  | 
| # @note:   | 
| #  | 
| #---------------------------------------------------------------------\  | 
|   | 
| import logging  | 
| from time import localtime  | 
| import TimeRotatingPathFileHandler  | 
| import CommFunc  | 
|   | 
| __gLogger = None  | 
|   | 
| def InitLog( LogPath, LogName, printToConsole = True, isDebug = True, mode = 'H' ):  | 
|     global __gLogger  | 
|     logLevel = logging.INFO  | 
|     if isDebug:  | 
|         logLevel = logging.DEBUG  | 
|           | 
|     #ÉèÖÃÈÕÖ¾µÄ¹ýÂ˵ȼ¶  | 
|     __gLogger = logging.getLogger(LogName)  | 
|     __gLogger.setLevel(logLevel)  | 
|       | 
|       | 
|     hdlr = TimeRotatingPathFileHandler.TimeRotatingPathFileHandler(LogPath, LogName, mode)  | 
|     fs = '%(asctime)s\t%(levelname)-8s\t%(message)s'  | 
|     dfs = '%Y-%m-%dT%H:%M:%S'  | 
|     fmt = logging.Formatter(fs, dfs)  | 
|     hdlr.suffix = "%Y-%m-%d_%H-%M-%S"  | 
|     hdlr.setLevel(logLevel)  | 
|     hdlr.setFormatter(fmt)  | 
|     __gLogger.addHandler(hdlr)  | 
|       | 
|     if printToConsole:  | 
|         console = logging.StreamHandler()  | 
|         console.setFormatter(fmt)  | 
|         __gLogger.addHandler(console)  | 
|         console.setLevel(logLevel)  | 
|   | 
| __WARN_COUNT = 0  | 
| __ERR_COUNT = 0  | 
| __FATAL_COUNT = 0  | 
|   | 
| __LastWarnInfo = ""  | 
| __LastWarnTime = ""  | 
| __LastErrInfo = ""  | 
| __LastErrTime = ""  | 
| __LastFatalInfo = ""  | 
| __LastFatalTime = ""  | 
|   | 
| def GetLastWarnInfo():  | 
|     global __LastWarnInfo  | 
|     return __LastWarnInfo  | 
|   | 
| def GetLastWarnTime():  | 
|     global __LastWarnTime  | 
|     return __LastWarnTime  | 
|   | 
| def GetLastErrInfo():  | 
|     global __LastErrInfo  | 
|     return __LastErrInfo  | 
|   | 
| def GetLastErrTime():  | 
|     global __LastErrTime  | 
|     return __LastErrTime  | 
|   | 
| def GetLastFatalInfo():  | 
|     global __LastFatalInfo  | 
|     return __LastFatalInfo  | 
|   | 
| def GetLastFatalTime():  | 
|     global __LastFatalTime  | 
|     return __LastFatalTime  | 
|   | 
| def Get_Warn_Count():  | 
|     global __WARN_COUNT  | 
|     return __WARN_COUNT  | 
|   | 
| def Get_Err_Count():  | 
|     global __ERR_COUNT  | 
|     return __ERR_COUNT  | 
|   | 
| def Get_Fatal_Count():  | 
|     global __FATAL_COUNT  | 
|     return __FATAL_COUNT  | 
|   | 
| def debug(msg):  | 
|     global __gLogger  | 
|     __gLogger.debug(msg)  | 
|       | 
| def info(msg):  | 
|     global __gLogger  | 
|     __gLogger.info(msg)  | 
|       | 
| def warn(msg):  | 
|     global __WARN_COUNT  | 
|     global __LastWarnInfo  | 
|     global __LastWarnTime  | 
|     global __gLogger  | 
|     __WARN_COUNT += 1  | 
|     __LastWarnInfo = msg  | 
|     __LastWarnTime = CommFunc.GetCurrentDataTimeStr()  | 
|     __gLogger.warning(msg)  | 
|       | 
| __ErrInfoList = []  | 
| __OnErr = None  | 
|   | 
| def OnErr(onErr):  | 
|     global __OnErr  | 
|     __OnErr = onErr  | 
|   | 
| def error(msg):  | 
|     global __ERR_COUNT  | 
|     global __LastErrInfo  | 
|     global __LastErrTime  | 
|     global __gLogger  | 
|     global __ErrInfoList  | 
|     global __OnErr  | 
|     __ERR_COUNT += 1  | 
|     __LastErrInfo = msg  | 
|     __LastErrTime = CommFunc.GetCurrentDataTimeStr()  | 
|     if msg not in __ErrInfoList:  | 
|         __ErrInfoList.append(msg)  | 
|         if __OnErr:  | 
|             errInfo = ""  | 
|             for info in __ErrInfoList:  | 
|                 errInfo += "%s\r\n"%info  | 
|             __OnErr(errInfo[:-2])   | 
|     __gLogger.error(msg)  | 
|       | 
| def fatal(msg):  | 
|     global __FATAL_COUNT  | 
|     global __LastFatalInfo  | 
|     global __LastFatalTime  | 
|     global __gLogger  | 
|     __FATAL_COUNT += 1  | 
|     __LastFatalInfo = msg  | 
|     __LastFatalTime = CommFunc.GetCurrentDataTimeStr()  | 
|     __gLogger.critical(msg)  | 
|   | 
| def test():  | 
|     import os  | 
|     InitLog(os.getcwd(), "AD")  | 
|     info('test')  | 
|   | 
|   | 
| if __name__ == '__main__':  | 
|     test()  | 
|   |