python logging learn 20201105
原文地址:https://www.cnblogs.com/CJOKER/p/8295272.html
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2020/11/4 20:15
# @Author : CFVS
# @Email : *************
# @File : logging_20201104.py
import logging # 导入logging模块
import os
import time
def output_log():
# 1.初始化对象
log_obj = logging.getLogger()
logging.basicConfig(level=logging.NOTSET) # 设置日志显示级别可以显示warning以下级别内容(显示)
#formatter = logging.basicConfig(format='%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s')
log_obj.setLevel(logging.INFO) # 设置日志级别
# 2.创建日志存放位置
time_stamp = time.strftime('%Y%m%d%H%M%S', time.localtime(time.time()))
log_path = os.path.dirname(os.getcwd()) + "/Logs/"
log_name = log_path + time_stamp + ".log"
if os.path.exists(log_path):
pass
else:
os.makedirs(log_path)
# 3.heander相关(创建和配置)
fh = logging.FileHandler(log_name, mode='w')
fh.setLevel(level=logging.DEBUG) # 设置等级
# format格式说明 用到去搜就可以
formatter = logging.Formatter('%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s')
fh.setFormatter(formatter) # 设置格式
log_obj.addHandler(fh)
# 4.输出到控制台
ch = logging.StreamHandler()
ch.setLevel(level=logging.WARNING)
ch.setFormatter(formatter)
log_obj.addHandler(ch)
return log_obj
if __name__ == '__main__':
log_obj = output_log()
# 5.日志
log_obj.info("info") # 输出正常日志
log_obj.debug("debug") # 输出详细信息
log_obj.warning("warning") # 提示性报错(将要发生)
log_obj.error("error") # 错误日志
log_obj.critical(u"扣提扣") # 严重错误
# 6.错误信息捕获
try:
open('cccccccccc', 'rb')
except Exception as e:
log_obj.error('Failed to open file', exc_info=True)