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

本文详细介绍了软件项目的标准目录结构,包括bin、conf、core等目录的作用,以及如何通过sys.path添加模块路径。同时,深入探讨了logging模块的日志记录方法,包括日志级别、格式设置和处理器绑定,帮助提升项目维护效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值