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