python 输出log_python:logging模块(记录打印日志)
logging.basicConfig(**kwargs):创建默认处理器从而将调试消息写至文件,它接受一个字典
filename:指定文件名,把记录输出定向的文件里面,如果不指定文件名就会直接打印到屏幕上
filemode:指打开文件的模式(默认为a)
format:指定的字符串格式
datefmt:指定日期格式
level:指定日志的级别级别值含义
CRITICAL,FATAL50临界
ERROR40错误
WARNING,WARN30警告
INFO20通知
DEBUG10调试
#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模块调试多线程的例子:#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
python 输出log_python:logging模块(记录打印日志)相关推荐
- 解决多个py模块调用同一个python的logging模块,打印日志冲突问题
前期对python中的logging模块进行了封装,这样自动化测试框架中的多个测试脚本(py)就可以使用同一个封装后的日志系统,这样各脚本中只需要引用一下即可,方面快捷.那么当我使用unittest框 ...
- python 输出log_Python常用模块logging——日志输出
用途 logging模块是Python的内置模块,主要用于输出运行日志,可以灵活配置输出日志的各项信息. 基本使用方法 logging.basicConfig(level=logging.DEBUG, ...
- python用logging模块写循环日志
在程序运行的过程中需要打印一些有用的信息,但如果需要打印的信息比较多的话且运行时间较长则磁盘容量可能不够用. 因此就需要写循环日志. 比如设置日志的大小为3M,设置日志的个数为3个,设置日志名称为Lo ...
- Python实战之logging模块使用详解
用Python写代码的时候,在想看的地方写个print xx 就能在控制台上显示打印信息,这样子就能知道它是什么了,但是当我需要看大量的地方或者在一个文件中查看的时候,这时候print就不大方便了,所 ...
- python logger_牛逼!python中的logging模块居然这么好用!
一.为什么我们需要引用logging模块? 我们把python代码放入到生产环境中的时候,我们只能看到代码运行的结果,我们不知道的是代码每一步过程的最终运行状态. 如果代码中间过程出现了问题的话,lo ...
- Python中的logging模块
http://python.jobbole.com/86887/ 最近修改了项目里的logging相关功能,用到了python标准库里的logging模块,在此做一些记录.主要是从官方文档和stack ...
- keil debug如何在watch直接修改变量值_python日志记录系列教程,内置logging模块(一),直接使用logging模块的基础日志记录
前言:成熟的软件开发不可避免的要进行日志记录,python内置模块logging提供了强大的日志记录能力,本文将从多个角度,由浅入深的介绍logging的常见使用方法和一些基本概念,本此系列文章分为两 ...
- 二十八、深入浅出Python中的 logging模块
@Author: Runsen logging模块是Python内置的标准模块,主要用于输出脚本运行日志,可以设置输出日志的等级.日志保存路径等. 文章目录 日志 五个级别 日志信息的输出格式 log ...
- 『R语言Python』使用logging、log4r写日志
在开发的过程中,我们常会碰到又长又臭的脚本代码,当脚本出现bug需要进行排查时,总会使我们焦头烂额,而日志能很好的帮助我们记录脚本运行过程中所产生的信息,还能帮助我们定位异常,下面总结下我在R和pyt ...
最新文章
- ssh-keygen
- Codeforces 454C - Little Pony and Expected Maximum
- C# Redis实战(六)
- 79-定义不同颜色字体
- 行式填报表轻松搞定流水号
- 机器学习实战-集成学习-23
- 图片去字工具_这些免费工具轻松提取图片中的文字,别再傻傻地手工去输了
- HDU - 2438 Turn the corner(三分)
- Linux 线程与互斥锁的使用
- 图片旋转 rotate
- 浏览器的cookie和服务器存储的session有什么关联,下面妙文为你解答
- html5 职工入职后台管理系统_10个酷炫的后台模板
- python3爬取网易云歌单数据清洗_如何利用Python网络爬虫爬取网易云音乐歌词
- HAProxy负载均衡代理
- 【渝粤教育】广东开放大学 财会法规和职业道德 形成性考核 (26)
- [密码学]对称密钥加密、非对称密钥加密和混合加密的基本原理
- dorado7.x argument type mismatch
- curve BLS12-377/381 BN256 SageMath脚本
- serverlet增删改查项目代码
- 每日新闻丨2020年芯片产业即迎来大变局;AMD推出64核128线程HEDT平台
热门文章
- python之deque
- Educoder 机器学习 神经网络 第四关:使用pytorch搭建卷积神经网络识别手写数字
- Vue提示warn:”[vue-router] Named Route ‘home’ has a default child route…”
- vue-router 报错:Navigation cancelled from“/…“ to “/…“ with a new navigation.
- python炒股日记_Python日记
- mac 看端口占用并杀死进程
- linux的网络配置有线线缆被拔出
- java io装饰类,Java IO 装饰类新说
- 红黑树与平衡二叉树_图解“红黑树”原理,一看就明白!
- java 数组计算隐藏电话号码