您的位置:首页 > 其它

规范目录结构,常用模块之日志模块

2019-01-22 19:28 155 查看
1.规范目录结构
bin  存放执行文件
conf 存放配置文件
core 核心业务逻辑
db   存放数据处理相关
lib  公共代码和第三方的模块
log  日志
readme  是一个文本文件,用于描述应用程序

1.使用规范目录结构的好处
-是项目结构更清晰
-提高可读性
规范目录结构不是固定,可以根据实际需求进行添加修改

如果你的执行文件不在最外层,需要手动将要访问的模块路径加入到sys.path,一下写法是固定的

import os
os.path.dirname#获取该路径的上一级路径
BASE_DIR=os.path.dirname(os.path.dirname(__file__))
import sys
sys.path.append(BASE_DIR)
获取当前执行文件的完整路径
print(__file__)

import os,sys
sys.path.append(os.path.dirname(os.path.dirname(__file__)))

2.常用模块
logging time random os
logging 日志模块
什么是日志
就是生活中的日记 用于记录什么时间发生了什么事情

为什么要记
就是为了在以后记录程序出现问题的时候,能够通过日志来找到问题的原因

怎么记日志
可以自己实现
当然有功能更强大的logging模块
import logging

logging.debug('debug')
logging.info('info')
logging.warning('warning')
logging.error('error')
logging.critical('critical')

logging模块将日志分为了五种等级
为什么要分级别?
为了在后期查看日志时候方便定位
logging的默认县市级别为WARNING,低于WARNING级别的都不会被显示
默认的输出位置是终端
默认的输出格式 WARNING(级别):root(日志生成器的名字):warning(输出的日志消息)

修改默认的行为
日志模块中的四种角色
1.logger    日志生成器     生成一条日志    可以设置生成日志的级别
2.filter    日志的过滤器   对logger生成的日志进行过滤
3.formatter 处理格式的     设置日志的输出格式
4.handler   处理器        最终负责将日志输出到指定的位置
handler的级别若低于生成器是没有意义的

自定义日志生成器
可以为生成器指定名字 是因为 可以存在多个生成器
logger=logging.getLogger('logger1')
设置日志级别
logging模块内部使用整数区分级别
此处可以直接写对应整数,但建议写常量
logger.setLevel(logging.WARNING)

logger.warning('这是一个警告信息')

创建一个处理器
handler=logging.FileHandler('test.log','a',encoding='utf-8')
fmt=logging.Formatter("%(asctime)s - %(name)s -%(filename)s - %(message)s")
handler.setFormatter(fmt)

将handler与生成器绑定
可以为一个生成器指定多个处理器
logger.addHandler(handler)

import logging
1.获取生成器
logger=logging.getLogger('mylogger')
logger.setLevel(10)

2.格式处理器
fmt=logging.Formatter('%(levelname)s %(asctime)s %(message)s')

3.创建handler处理器
handler=logging.Filehandler('test2.log','a',encoding='utf-8')
可以绑定多个handler
StreamHandler用于输出到终端
handler2=logging.StreamHandler()

4.将handler与格式处理器绑定
handler.setFormatter(fmt)
handler2.setFormatter(fmt)

5.把handler生成器绑定
logger.addHandler(handler)
logger.addHandler(handler2)
name = "bgon"

logger.debug(name)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: