logging

1.basicConfig方式

import logging

# 以下是日志的级别
logging.debug('debug message')
logging.info('info message')
logging.warning('warning msg')
logging.error('error msg')
logging.critical('critical msg')

设置级别:

logging.basicConfig(level=logging.DEBUG)

如果想要存到文件里:

logging.basicConfig(level=logging.DEBUG,filename='logger.logo')
logging.basicConfig(level=logging.DEBUG,filename='logger.logo',filemode='w')

时间和行号

format='%(asctime)s %(lineno)d %(message)s'

运行之后文件里这样显示的

2019-08-23 10:15:44,510 11 debug message
2019-08-23 10:15:44,511 12 info message
2019-08-23 10:15:44,511 13 warning msg
2019-08-23 10:15:44,512 14 error msg
2019-08-23 10:15:44,513 15 critical msg

2.format参数中可能用到的格式化串:

--- %(name)s        Logger的名字

---%(levelno)s     数字形式的日志级别

---%(levelname)s     文本形式的日志级别

---%(pathname)s       调用日志输出函数的模块的完整路径名,可能没有

---%(filename)s          调用日志输出函数的模块的文件名

---%(module)s  调用日志输出函数的模块名

---%(funcName)s   调用日志输出函数的函数名

---%(lineno)s  调用函数日志输出函数的语句所在的代码行

---%(created)f  当前时间,用UNIX标准的表示时间的浮点数表示

---%(relativeCreated)d  输出日志信息时的,自logger创建以来的毫秒数

---%(asctime)s  字符串形式的当前时间,默认格式是“2003-07-08 16:49:45,896”  逗号后面是毫秒

---%(thread)d  线程ID。可能没有

---%(threadName)s  线程名。可能没有

---%(process)d  进程ID。 可能没有

---%(message)s  用户输出的信息

3.logger对象

import logging

logger = logging.getLogger()           # 创建对象

f = logging.FileHandler('test_log')           # 向文件里发送内容
screen = logging.StreamHandler() # 向屏幕发送内容 ff = logging.Formatter('%(asctime)s' '%(message)s') f.setFormatter(ff)
screen.setFormatter(ff) logger.addHandler(f)
logger.addHandler(screen) logger.setLevel('DEBUG') logger.debug('debug')
logger.info('info')
logger.warning('warning')
logger.error('error')
logger.critical('critical')

运行结果屏幕上也显示,也能存到文件里

改为函数的形式:

import logging
def logger():
logger = logging.getLogger() # 创建对象 f = logging.FileHandler('test_log') # 向文件里发送内容
screen = logging.StreamHandler() # 向屏幕发送内容 ff = logging.Formatter('%(asctime)s' '%(message)s') f.setFormatter(ff)
screen.setFormatter(ff) logger.addHandler(f)
logger.addHandler(screen) logger.setLevel('DEBUG')
return logger logger = logger()
logger.debug('debug')
logger.info('info')
logger.warning('warning')
logger.error('error')
logger.critical('critical')

python学习-57 logging模块的更多相关文章

  1. python学习之-- logging模块

    logging模块功能:提供了标准的日志接口,可以通过它存储各种格式的日志.日志5个级别分:debug(),info(),warning(),error(),critical() logging.ba ...

  2. python 学习笔记 -logging模块(日志)

    模块级函数 logging.getLogger([name]):返回一个logger对象,如果没有指定名字将返回root loggerlogging.debug().logging.info().lo ...

  3. python学习之logging模块

    Logger.setLevel(level) 设置记录器的级别为level.低于该级别的信息将被忽略. 记录器默认级别为NOTSET.如果记录器是根记录器,则默认将记录所有信息: 如果是一个非根记录器 ...

  4. Python自建logging模块

    本章将介绍Python内建模块:日志模块,更多内容请从参考:Python学习指南 简单使用 最开始,我们用最短的代码体验一下logging的基本功能. import logging logger = ...

  5. Python实战之logging模块使用详解

    用Python写代码的时候,在想看的地方写个print xx 就能在控制台上显示打印信息,这样子就能知道它是什么了,但是当我需要看大量的地方或者在一个文件中查看的时候,这时候print就不大方便了,所 ...

  6. Python中的logging模块就这么用

    Python中的logging模块就这么用 1.日志日志一共分成5个等级,从低到高分别是:DEBUG INFO WARNING ERROR CRITICALDEBUG:详细的信息,通常只出现在诊断问题 ...

  7. python中日志logging模块的性能及多进程详解

    python中日志logging模块的性能及多进程详解 使用Python来写后台任务时,时常需要使用输出日志来记录程序运行的状态,并在发生错误时将错误的详细信息保存下来,以别调试和分析.Python的 ...

  8. Python学习day19-常用模块之re模块

    figure:last-child { margin-bottom: 0.5rem; } #write ol, #write ul { position: relative; } img { max- ...

  9. Python日志输出——logging模块

    Python日志输出——logging模块 标签: loggingpythonimportmodulelog4j 2012-03-06 00:18 31605人阅读 评论(8) 收藏 举报 分类: P ...

随机推荐

  1. SDN上机第五次作业

    2019 SDN上机第五次作业 1.浏览RYU官网学习RYU控制器的安装和RYU开发入门教程,提交你对于教程代码的理解,包括但不限于: 1.1描述官方教程实现了一个什么样的交换机功能? 答:官方教程实 ...

  2. sqlite3 查看Cookie文件<转>

    原帖地址:https://blog.csdn.net/yygydjkthh/article/details/37604309 .使用命令对此数据库进行打开: $ sqlite3 cookies.sql ...

  3. [XLua]热更新四部曲视频教程+示例源码

    基于Unity2017 xLua是由腾讯维护的一个开源项目,xLua为Unity. .Net. Mono等C#环境增加Lua脚本编程的能力,借助xLua,这些Lua代码可以方便的和C#相互调用.自20 ...

  4. make 实例 二 V56

    ######################################################################### # # Makefile used for buil ...

  5. HttpWebRequest Timeout

    随着REST风格的流行,直接通过 HttpWebRequest 进行服务调用的客户端应用越来越多.这里总结一些可能需要费时调查的经验,希望能帮助大家. 1. 用完的HttpWebRequest要Abo ...

  6. docker容器日志查看

    日志分两类,一类是 Docker 引擎日志:另一类是 容器日志. Docker 引擎日志 Docker 引擎日志 一般是交给了 Upstart(Ubuntu 14.04) 或者 systemd (Ce ...

  7. 阿里云配置WAF的步骤

    date:2019-07-04  17:59:19 author: headsen chen 配置WAF防护策略 本页目录 操作步骤 网站接入Web应用防火墙(WAF)后,WAF以默认防护策略为其过滤 ...

  8. Linux防火墙白名单设置

    在linux系统中安装yum install iptables-services 然后 vi /etc/sysconfig/iptables # Generated by iptables-save ...

  9. org.openqa.selenium.WebDriverException: unknown error: call function result missing 'value'

    原因:浏览器和驱动版本不匹配 https://npm.taobao.org/mirrors/chromedriver

  10. ES6深入浅出-4 迭代器与生成器-3.生成器 & for...of

    迭代器平时用的很少.但是如果你是写框架的,你会经常用到迭代器. 生成器是专门用来做迭代器的东西 发布器是要产生一个叫做next的对象,如果你要产生这种对象.就可以使用ES6新出的语法. ES6的新语法 ...