addproject
This commit is contained in:
91
base_framework/public_tools/log.py
Normal file
91
base_framework/public_tools/log.py
Normal file
@@ -0,0 +1,91 @@
|
||||
import logging
|
||||
import time
|
||||
from os import path
|
||||
from base_framework.base_config.current_pth import *
|
||||
from concurrent_log_handler import ConcurrentRotatingFileHandler
|
||||
import platform
|
||||
|
||||
|
||||
time_flag = time.time()
|
||||
d = path.dirname(__file__)
|
||||
parent_path = os.path.dirname(d)
|
||||
parent_path = os.path.dirname(parent_path)
|
||||
# obj_tool = Tools()
|
||||
|
||||
if platform.system() == 'Darwin':
|
||||
LOG_FILENAME = log_path + '/' + 'run.log'
|
||||
else:
|
||||
# Windows路径
|
||||
LOG_FILENAME = log_path + '\\' + 'run.log'
|
||||
if not os.path.exists(log_path):
|
||||
try:
|
||||
os.mkdir(log_path)
|
||||
except Exception as e:
|
||||
print('日志文件夹创建失败:{}'.format(e))
|
||||
|
||||
# MAC 路径
|
||||
# LOG_FILENAME = log_path + '/' + 'run.log'
|
||||
# LOG_FILENAME = (os.path.split(os.path.realpath(__file__)))[0] + '\\' + 'log\\run.log'
|
||||
|
||||
|
||||
# Color escape string
|
||||
COLOR_RED = '\033[1;31m'
|
||||
COLOR_GREEN = '\033[1;32m'
|
||||
COLOR_YELLOW = '\033[1;33m'
|
||||
COLOR_BLUE = '\033[1;34m'
|
||||
COLOR_PURPLE = '\033[1;35m'
|
||||
COLOR_CYAN = '\033[1;36m'
|
||||
COLOR_GRAY = '\033[1;37m'
|
||||
COLOR_WHITE = '\033[1;38m'
|
||||
COLOR_RESET = '\033[1;0m'
|
||||
|
||||
# Define log color
|
||||
LOG_COLORS = {
|
||||
'DEBUG': COLOR_BLUE + '%s' + COLOR_RESET,
|
||||
'INFO': COLOR_GREEN + '%s' + COLOR_RESET,
|
||||
'WARNING': COLOR_YELLOW + '%s' + COLOR_RESET,
|
||||
'ERROR': COLOR_RED + '%s' + COLOR_RESET,
|
||||
'CRITICAL': COLOR_RED + '%s' + COLOR_RESET,
|
||||
'EXCEPTION': COLOR_RED + '%s' + COLOR_RESET,
|
||||
}
|
||||
|
||||
|
||||
class log_colour(logging.Formatter):
|
||||
|
||||
def __init__(self, fmt=None, datefmt=None):
|
||||
logging.Formatter.__init__(self, fmt, datefmt)
|
||||
|
||||
def format(self, record):
|
||||
level_name = record.levelname
|
||||
msg = logging.Formatter.format(self, record)
|
||||
return LOG_COLORS.get(level_name, '%s') % msg
|
||||
|
||||
|
||||
def get_logger():
|
||||
logger = logging.Logger('Automation')
|
||||
logger.setLevel(0)
|
||||
terminal = logging.StreamHandler()
|
||||
terminal.setLevel(logging.DEBUG)
|
||||
# log_file = logging.handlers.TimedRotatingFileHandler(filename=LOG_FILENAME, when="S", backupCount=3,
|
||||
# encoding='utf-8', interval=5)
|
||||
log_file = ConcurrentRotatingFileHandler(
|
||||
LOG_FILENAME, maxBytes=5 * 1024 * 1024, backupCount=4, encoding="utf-8")
|
||||
log_file.setLevel(logging.INFO)
|
||||
|
||||
formatter_ter = log_colour(
|
||||
'%(asctime)s [tid:%(thread)d] %(filename)s[line:%(lineno)d] %(levelname)s %(message)s')
|
||||
formatter_log = logging.Formatter(
|
||||
'%(asctime)s [tid:%(thread)d pid:%(process)d] %(filename)s[line:%(lineno)d] %(levelname)s %(message)s')
|
||||
|
||||
terminal.setFormatter(formatter_ter)
|
||||
log_file.setFormatter(formatter_log)
|
||||
|
||||
logger.addHandler(terminal)
|
||||
logger.addHandler(log_file)
|
||||
|
||||
return logger
|
||||
|
||||
|
||||
def set_log_file(logfilename):
|
||||
global LOG_FILENAME
|
||||
LOG_FILENAME = logfilename
|
||||
Reference in New Issue
Block a user