美文网首页
Python的日志模块1

Python的日志模块1

作者: 爱痴鱼 | 来源:发表于2017-10-25 14:13 被阅读0次

基本实例

import logging

# 创建一个logger
logger = logging.getLogger('mylogger')
logger.setLevel(logging.DEBUG)

# 创建一个handler,用于写入日志文件
fh = logging.FileHandler('test.log')
fh.setLevel(logging.DEBUG)

# 再创建一个handler,用于输出到控制台
sh = logging.StreamHandler()
sh.setLevel(logging.DEBUG)

# 定义handler的输出格式
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
fh.setFormatter(formatter)
ch.setFormatter(formatter)

# 给logger添加handler
logger.addHandler(fh)
logger.addHandler(sh)

基本函数API

logging.getLogger([name])

返回一个logger实例,如果没有指定name,返回root logger。只要name相同,返回的logger实例都是同一个而且只有一个,即name和logger实例是一一对应的。这意味着,无需把logger实例在各个模块中传递。只要知道name,就能得到同一个logger实例。

logger.setLevel(/v/)

设置logger的level,数值越高,优先级越高。取值如下:

Level Numeric value 2
CRITICAL 50
ERROR 40
WARNING 30
INFO 20
DEBUG 10
NOTSET 0

如果把logger的级别设置成INFO,那么小于INFO级别的日志都不输出,大于等于INFO级别的日志都输出。

logger.addHandler(hdlr)

通过handler对象可以把日志内容写到不同的地方。比如简单的StreamHandler就是把日志写到类似文件的地方。python提供了十几种实用handler,比较常用有:

  • StreamHandler: 输出到控制台
  • FileHandler: 输出到文件
  • BaseRotatingHandler 可以按时间写入到不同的日志中。比如将日志按天写入不同的日期结尾的文件文件。
  • SocketHandler 用TCP网络连接写LOG
  • DatagramHandler 用UDP网络连接写LOG
  • SMTPHandler 把LOG写成EMAIL邮寄出去

logging.basicConfig([**kwargs])

这个函数用来配置root logger, 为root logger创建一个StreamHandler,设置默认的格式。
这些函数: logging.debug()、logging.info()、logging.warning()、logging.error()、logging.critical() 如果调用的时候发现root logger没有任何handler,会自动调用basicConfig添加一个handler
如果root logger已有handler,这个函数不做任何事情使用basicConfig来配置root logger的输出格式和level:

import logging
logging.basicConfig(format='%(levelname)s:%(message)s', level=logging.DEBUG)
logging.debug('This message should appear on the console')

相关文章

  • 1-logging模块

    1 logging模块简介 logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志...

  • python中的logging

    作者:Gakki 1. 关于python中的日志模块。 1.1 日志等级 日志等级(level)描述DEBUG最详...

  • Python 中的 logging 模块 学习

    参考资料: Python中的logging模块 python 的日志logging模块学习 python logg...

  • logging模块

    简介 logging模块是python日志管理模块 使用 日志级别: CRITICAL > ERROR > WAR...

  • logging模块

    (一)什么是logging模块? logging是Python内置的日志模块,用于生成程序的日志 (二...

  • Django中的日志系统章

    Python日志系统 Django使用logging模块记录日志。Python的日志系统分为4块。分别是:logg...

  • Python日志系统的使用(基础版)

    Python的日志是通过logging模块实现的 一、日志的基本使用 1. 日志输出到控制台 运行结果: 日志的默...

  • Python日志处理logging

    参考: Python之日志处理(logging模块)

  • Python的日志模块1

    基本实例 基本函数API logging.getLogger([name]) 返回一个logger实例,如果没有指...

  • Python 标准库模块 - logging

    logging 模块是 Python 内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级、日志保存路径、...

网友评论

      本文标题:Python的日志模块1

      本文链接:https://www.haomeiwen.com/subject/daeqpxtx.html