logging使用笔记

logging日志框架

主要包括四部分:

  • Loggers: 可供程序直接调用的接口,app通过调用提供的api来记录日志
  • Handlers: 决定将日志记录分配至正确的目的地
  • Filters:对日志信息进行过滤, 提供更细粒度的日志是否输出的判断
  • Formatters: 制定最终记录打印的格式布局

日志级别

  • DEBUG:详细信息,一般只在调试问题时使用
  • INFO:证明事情按预期工作
  • WARNING:某些没有预料到的时间提示,或者在将来可能会出现的问题提示。例如:磁盘空间不足,但是软件还是会照常运作
  • ERROR:由于更严重的问题,软件已不能执行一些功能了
  • CRITICAL:严重错误,表明软件已不能继续运行了
    级别排序:CRITICAL>ERROR>WARNING>INFO>DEBUG 默认等级是WARNING

常用函数

basicConfig

# basicConfig直接配置生成hanler
logging.basicConfig(filename="./logs/flask.log",
                    level=logging.INFO,
                    format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')
logger = logging.getLogger('mainModule')

控制台记录

loggerinput = logging.getLogger('input')
loggerinput.setLevel(level = logging.INFO)
#可定义记录到stdout or stdin
console = logging.StreamHandler(sys.stdout)
console.setLevel(logging.INFO)
loggerinput.addHandler(console)

文件记录Handler

loggerinput = logging.getLogger('input')
loggerinput.setLevel(level = logging.INFO)
# 一般handler
# handler = logging.FileHandler("./logs/intput.log")
# 自动扩充handler
# handler = RotatingFileHandler("./logs/intput.log")
# 自动扩充且按天记录handler
handler = TimedRotatingFileHandler("./logs/intput.log", when='D', backupCount=7)
handler.setLevel(logging.INFO)
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
handler.setFormatter(formatter)
#logger添加handler
loggerinput.addHandler(handler)

参考文献

  • https://www.cnblogs.com/deeper/p/7404190.html
  • https://www.cnblogs.com/lixiaoting/p/11131289.html
  • https://cloud.tencent.com/developer/article/1114858
  • https://blog.csdn.net/weixin_35834894/article/details/96454291
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值