-
基本应用
-
日志处理本质:Logger/FileHandler/Formatter
-
推荐处理日志方式
import logging
file_handler = logging.FileHandler(filename='x1.log', mode='a', encoding='utf-8',)
logging.basicConfig(
format='%(asctime)s - %(name)s - %(levelname)s -%(module)s: %(message)s',
datefmt='%Y-%m-%d %H:%M:%S %p',
handlers=[file_handler,],
level=logging.ERRORlevel 默认是ERROR 可以指定level 日志只写比 ERROR更高等级的 【 info < error < warning <.....】
)
logging.error('你好')
-
-
推荐处理日志方式 + 日志分割
import time
import logging
from logging import handlers
# file_handler = logging.FileHandler(filename='x1.log', mode='a', encoding='utf-8',)
file_handler = handlers.TimedRotatingFileHandler(filename='x3.log', when='s', interval=5, encoding='utf-8')
logging.basicConfig(
format='%(asctime)s - %(name)s - %(levelname)s -%(module)s: %(message)s',
datefmt='%Y-%m-%d %H:%M:%S %p',
handlers=[file_handler,],
level=logging.ERROR
)
for i in range(1,100000):
time.sleep(1)
logging.error(str(i))注意事项:
# 在应用日志时,如果想要保留异常的堆栈信息。
import logging
import requests
logging.basicConfig(
filename='wf.log',
format='%(asctime)s - %(name)s - %(levelname)s -%(module)s: %(message)s',
datefmt='%Y-%m-%d %H:%M:%S %p',
level=logging.ERROR
)
try:
requests.get('http://www.xxx.com')
except Exception as e:
msg = str(e) # 调用e.__str__方法
logging.error(msg,exc_info=True) -
# 单例模式 设计模式
# 什么是单例模式
# 单例的应用场景
# __new__方法 :创建实例的 并且在init之前工作
# logging模块
# 记录日志的
# 用户 :
# 程序员 :
# 统计用的
# 用来做故障排除的 debug
# 用来记录错误,完成代码的优化的
# logging.basicconfig
# 使用方便
# 不能实现 编码问题;不能同时向文件和屏幕上输出
# logging.debug,logging.warning
# logger对象
# 复杂
# 创建一个logger对象
# 创建一个文件操作符
# 创建一个屏幕操作符
# 创建一个格式# 给logger对象绑定 文件操作符 # 吸星大法
# 给logger对象绑定 屏幕操作符
# 给文件操作符 设定格式
# 给屏幕操作符 设定格式# 用logger对象来操作
# logger = logging.getLogger()
# fh = logging.FileHandler('log.log') log信息文件写入
# sh = logging.StreamHandler() log信息屏幕显示
# logger.addHandler(fh) 吸星大法
# logger.addHandler(sh) 吸星大法
# formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
# fh.setFormatter(formatter)
# sh.setFormatter(formatter)
# logger.warning('message')
19.项目结构目录
# **************** 项目结构目录文件夹 ****************# 6个项目目录
# bin 可执行文件:程序入口
#config 配置&参数设置
# db 数据&内容
# lib 公共功能
# log 日志代码
# src 业务代码