日志处理()-其他
日志处理()
日志等级的分类:
DEBUG
INFO
WARNING
ERROR
CRITICAL
import logging
import os
import time
from common.tools import get_project_path, sep
def get_log(logger_name):
"""
Handler主要用于异步消息的处理:当发出一个消息之后,首先进入一个消息队列,发送消息的函数即刻返回,而另外一个部分在消息队列中逐一将消息取出,
然后对消息进行处理,也就是发送消息和接收消息不是同步的处理。 这种机制通常用来处理相对耗时比较长的操作
:param logger_name:
:return:
"""
# 创建一个logger
logger = logging.getLogger(logger_name)
logger.setLevel(logging.INFO)
# 设置日志存放路径,日志文件名
all_log_path = get_project_path() + sep(['logs', 'all_logs'], add_sep_before=True, add_sep_after=True)
if not os.path.exists(all_log_path):
os.makedirs(all_log_path)
# 获取本地时间
time_ = time.time()
print(time_) # 获取时间戳
print(time.localtime(time_)) # 获取年月日时分秒等格式的时间数据
# rq要作为文件名,但是命名不能有:,所以未采取'%Y-%m-%d %H:%M:%S'形式
rq = time.strftime('%Y%m%d_%H%M', time.localtime(time_))
print(rq)
# 设置日志文件名
all_log_name = all_log_path + rq + '.log'
print(all_log_name)
# 创建handler:写入所有日志
fh = logging.FileHandler(all_log_name)
fh.setLevel(logging.INFO)
# 定义日志的输出格式
all_log_formatter = logging.Formatter('%(asctime)s - %(filename)s - %(funcName)s - %(lineno)d - %(levelname)s - %(message)s',
datefmt='%Y-%m-%d %H:%M:%S')
# 将定义好的输出形式添加到handler
fh.setFormatter(all_log_formatter)
# 给logger添加handler
logger.addHandler(fh)
return logger
log = get_log('自动化测试')
if __name__ == '__main__':
log.debug('I am a debug message')
log.info('I am a info message')
log.warning('I am a warning message')
log.error('I am a error message')
log.critical('I am a critical message')
————————
日志等级的分类:
DEBUG
INFO
WARNING
ERROR
CRITICAL
import logging
import os
import time
from common.tools import get_project_path, sep
def get_log(logger_name):
"""
Handler主要用于异步消息的处理:当发出一个消息之后,首先进入一个消息队列,发送消息的函数即刻返回,而另外一个部分在消息队列中逐一将消息取出,
然后对消息进行处理,也就是发送消息和接收消息不是同步的处理。 这种机制通常用来处理相对耗时比较长的操作
:param logger_name:
:return:
"""
# 创建一个logger
logger = logging.getLogger(logger_name)
logger.setLevel(logging.INFO)
# 设置日志存放路径,日志文件名
all_log_path = get_project_path() + sep(['logs', 'all_logs'], add_sep_before=True, add_sep_after=True)
if not os.path.exists(all_log_path):
os.makedirs(all_log_path)
# 获取本地时间
time_ = time.time()
print(time_) # 获取时间戳
print(time.localtime(time_)) # 获取年月日时分秒等格式的时间数据
# rq要作为文件名,但是命名不能有:,所以未采取'%Y-%m-%d %H:%M:%S'形式
rq = time.strftime('%Y%m%d_%H%M', time.localtime(time_))
print(rq)
# 设置日志文件名
all_log_name = all_log_path + rq + '.log'
print(all_log_name)
# 创建handler:写入所有日志
fh = logging.FileHandler(all_log_name)
fh.setLevel(logging.INFO)
# 定义日志的输出格式
all_log_formatter = logging.Formatter('%(asctime)s - %(filename)s - %(funcName)s - %(lineno)d - %(levelname)s - %(message)s',
datefmt='%Y-%m-%d %H:%M:%S')
# 将定义好的输出形式添加到handler
fh.setFormatter(all_log_formatter)
# 给logger添加handler
logger.addHandler(fh)
return logger
log = get_log('自动化测试')
if __name__ == '__main__':
log.debug('I am a debug message')
log.info('I am a info message')
log.warning('I am a warning message')
log.error('I am a error message')
log.critical('I am a critical message')