日志模块和规范目录

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 处理器         最终负责将日志输出到指定的位置

 

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

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

# 如果你的执行文件不在最外层,那么需要手动将要访问的模块路径加入到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__)

 

logging模板:

   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)

# logger.info()

 

 

日志的继承关系:

import  logging

log1 = logging.getLogger("mother")
log2 = logging.getLogger("mother.son")
log3 = logging.getLogger("mother.son.grandson")

# handler
fh = logging.FileHandler(filename="cc.log",encoding="utf-8")
fh2 = logging.FileHandler(filename="dd.log",encoding="utf-8")
# formatter
fm = logging.Formatter("%(asctime)s - %(name)s -%(filename)s - %(message)s")

# 绑定
log1.addHandler(fh)
log2.addHandler(fh2)

log3.addHandler(fh)
# 绑定格式
fh.setFormatter(fm)
# 测试
# log1.error("测试")
# log2.error("测试")
# log3.error("测试")


# 取消传递
# log3.propagate = False
# # 再次测试
log3.error("测试3")


import logging

 

规范目录:

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

常见目录如下:
    bin    存放执行文件
    conf   存放配置文件
    core   存放核心业务逻辑
    db     存放数据处理相关
    lib    存放公共代码,和第三方模块
    log    存储日志文件
    readme 是一个文本文件,用于描述应用程序
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值