前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python:logging模块(记录打

python:logging模块(记录打

作者头像
py3study
发布2020-01-08 15:50:42
3000
发布2020-01-08 15:50:42
举报
文章被收录于专栏:python3python3

logging.basicConfig(**kwargs):创建默认处理器从而将调试消息写至文件,它接受一个字典

filename:指定文件名,把记录输出定向的文件里面,如果不指定文件名就会直接打印到屏幕上

filemode:指打开文件的模式(默认为a)

format:指定的字符串格式

datefmt:指定日期格式

level:指定日志的级别

级别

含义

CRITICAL,FATAL

50

临界

ERROR

40

错误

WARNING,WARN

30

警告

INFO

20

通知

DEBUG

10

调试

代码语言:javascript
复制
#coding:utf-8
import logging
logging.basicConfig(level = logging.INFO)#定义日志级别为INFO级别
#下面是定义各个级别的日志输出
logging.debug('I am debug')     
logging.info('I am info')
logging.warn('I am warning')
logging.error('I am error')
logging.critical('I am critical')
######运行结果######
>>> INFO:root:I am info
WARNING:root:I am warning
ERROR:root:I am error
CRITICAL:root:I am critical
由于定义的日志级别是INFO,而debug级别的值只有10,而INFO的是20
所有不会打印出来,只打印大于INFO值的日志记录
一般我调试程序都是直接打印在屏幕的所以就没输出到文件了

logging模块还支持将线程名嵌入到各个日志消息中

下面写个利用logging模块调试多线程的例子:

代码语言:javascript
复制
#coding:utf-8
import threading
import time
import logging
logging.basicConfig(level = logging.DEBUG,
format ='[%(levelname)8s]\t (%(threadName)10s)\t %(message)30s')
def worker():
    #logging的日志格式必须是字符型,不接受float和int
    logging.debug('worker start:%s'%time.time())
    time.sleep(2)
    logging.debug('worker done:%s'%time.time())
          
def saihi():
    logging.debug('saihi start:%s'%time.time())
    time.sleep(2)
    worker()
    logging.debug('saihi done:%s'%time.time())
          
t = threading.Thread(target = saihi, name = 't')
x = threading.Thread(target = worker, name = 'x')
w = threading.Thread(target = worker)
t.start()
x.start()
w.start()
#####运行结果#####
[   DEBUG]   (         t)       saihi start:1374939516.13
[   DEBUG]   (         x)      worker start:1374939516.13
[   DEBUG]   (  Thread-1)      worker start:1374939516.13
[   DEBUG]   (         t)      worker start:1374939518.13
[   DEBUG]   (  Thread-1)       worker done:1374939518.13
[   DEBUG]   (         x)       worker done:1374939518.13
[   DEBUG]   (         t)       worker done:1374939520.13
[   DEBUG]   (         t)        saihi done:1374939520.13
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-09-08 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
日志服务
日志服务(Cloud Log Service,CLS)是腾讯云提供的一站式日志服务平台,提供了从日志采集、日志存储到日志检索,图表分析、监控告警、日志投递等多项服务,协助用户通过日志来解决业务运维、服务监控、日志审计等场景问题。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档