#!/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()