# -*- coding:utf-8 -*-
import logging
import os
import sys
import time
def get_log():
# 在控制台输出
# acars存储日志
# 创建一个logger
logger = logging.getLogger()
logger.handlers.clear() # 清除logger,避免多个文件引用重复打印log
logger.setLevel(logging.INFO)
"""定义一个函数,回调logger实例"""
# log_path = os.path.dirname(sys.path[0])
# print(log_path)
# 创建一个handler,用于写入日志文件
# log_path = os.path.dirname(os.path.dirname(sys.path[0]))+"/Logs/" # 指定文件输出路径,注意logs是个文件夹,一定要加上/,不然会导致输出路径错误,把logs变成文件名的一部分了
# curPath = os.path.abspath(os.path.dirname(__file__))
log_path = os.path.abspath(os.path.join(os.getcwd())) + "/AcarsLogs/" # 获取myProject,也就是项目的根路径
if os.path.exists(log_path) and os.path.isdir(log_path):
pass
else:
os.mkdir(log_path)
# print(log_path)
nowTime = time.strftime('%Y-%m-%d')
logname = log_path + 'acars-' + nowTime + '.log' # 指定输出的日志文件名
fp = open(logname, 'a')
# 直接打开一个文件,如果文件不存在则创建文件
fp.close()
fh = logging.FileHandler(logname, encoding='utf-8') # 指定utf-8格式编码,避免输出的日志文本乱码
fh.setLevel(logging.DEBUG)
# 创建一个handler,用于将日志输出到控制台
ch = logging.StreamHandler()
ch.setLevel(logging.DEBUG)
# 定义handler的输出格式
formatter = logging.Formatter('%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s')
fh.setFormatter(formatter)
ch.setFormatter(formatter)
# 给logger添加handler
logger.addHandler(fh)
logger.addHandler(ch)
return logger
if __name__ == '__main__':
log = get_log()
log.debug('debug')
log.info('info')
log.warning('警告')
log.error('报错')
log.critical('严重')
python log日志
最新推荐文章于 2024-05-01 16:08:58 发布