Python: logging日志模块详解

日志级别

  CRITICAL > ERROR > WARNING > INFO > DEBUG > NOTSET

级别何时使用
DEBUG详细信息,典型地调试问题时会感兴趣。
INFO证明事情按预期工作。
WARNING表明发生了一些意外,或者不久的将来会发生问题(如‘磁盘满了’)。软件还是在正常工作。
ERROR由于更严重的问题,软件已不能执行一些功能了。
CRITICAL严重错误,表明软件已不能继续运行了。

可自定义日志级别

import sys
import logging

logging.basicConfig(
    level=logging.WARNING,
    format='%(asctime)s %(levelname)s %(message)s',
    stream=sys.stdout)

  logging.basicConfig 函数 各参数:

filename: 指定日志文件名

filemode: 和file函数意义相同,指定日志文件的打开模式,’w’或’a’

format: 指定输出的格式和内容,format可以输出很多有用信息,如上例所示:

  • %(levelno)s: 打印日志级别的数值
  • %(levelname)s: 打印日志级别名称
  • %(pathname)s: 打印当前执行程序的路径,其实就是sys.argv[0]
  • %(filename)s: 打印当前执行程序名
  • %(funcName)s: 打印日志的当前函数
  • %(lineno)d: 打印日志的当前行号
  • %(asctime)s: 打印日志的时间
  • %(thread)d: 打印线程ID
  • %(threadName)s: 打印线程名称
  • %(process)d: 打印进程ID
  • %(message)s: 打印日志信息

datefmt: 指定时间格式,同time.strftime()

level: 设置日志级别,默认为logging.WARNING

stream: 指定将日志的输出流,可以指定输出到sys.stderr,sys.stdout或者文件,默认输出到sys.stderr,当stream和filename同时指定时,stream被忽略


  下面是我写的一段代码用例:

import os
import sys
import logging

logging.basicConfig(
    level=logging.WARNING,
    format='%(asctime)s %(levelname)s %(message)s',
    stream=sys.stdout)

PATH_0 = './log'
PATH_1 = './NoExistFolder'


def main():
    if not os.path.isdir(PATH_0):
        logging.error("\n Dir '%s' not found. ", PATH_0)
        sys.exit(1)
    print ' Dir %s is found. ' % PATH_0

    if not os.path.isdir(PATH_1):
        logging.error("\n Dir '%s' not found. ", PATH_1)
        sys.exit(1)
    print ' Dir %s is found. ' % PATH_1

if __name__ == '__main__':
    main()

  Result:

 Dir ./log is found. 

2017-06-20 20:47:22,409 ERROR  Dir './NoExistFolder' not found. 

Process finished with exit code 1

其他学习链接

  python 的日志logging模块学习

  python logging模块使用教程

  使用python的logging模块



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值