Python常用模块logging——日志输出功能(示例代码)

yipeiwu_com5年前Python基础

用途

logging模块是Python的内置模块,主要用于输出运行日志,可以灵活配置输出日志的各项信息。

基本使用方法

logging.basicConfig(level=logging.DEBUG,
          format='levelname:%(levelname)s filename: %(filename)s '
              'outputNumber: [%(lineno)d] thread: %(threadName)s output msg: %(message)s'
              ' - %(asctime)s', datefmt='[%d/%b/%Y %H:%M:%S]',
          filename='./loggmsg.log', filemode="a")

参数

日志一共分成5个等级,从低到高分别是:DEBUG ,INFO ,WARNING ,ERROR, CRITICAL。

%(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: 打印日志信息

调用

logging.debug('This is debug message')
logging.info('This is info message')
logging.warning('This is warning message')

示例

import logging
logging.basicConfig(level=logging.DEBUG,
          format='levelname:%(levelname)s filename: %(filename)s '
              'outputNumber: [%(lineno)d] thread: %(threadName)s output msg: %(message)s'
              ' - %(asctime)s', datefmt='[%d/%b/%Y %H:%M:%S]',
          filename='./loggmsg.log', filemode="a")
logging.debug("Hello")

日志文件loggmsg.log

levelname:DEBUG filename: test.py outputNumber: [7]  thread: MainThread output msg:  Hello -

总结

以上所述是小编给大家介绍的Python常用模块logging——日志输出功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对【听图阁-专注于Python设计】网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

相关文章

Python扩展内置类型详解

除了实现新的种类的对象以外,类有时有用于扩展Python的内置类型的功能。主要有以下两种技术: 通过嵌入扩展类型 下例把一些集合函数变成方法,而且新增了一些基本运算符重载,实现了新的集...

Python中使用asyncio 封装文件读写

前言 和网络 IO 一样,文件读写同样是一个费事的操作。 默认情况下,Python 使用的是系统的阻塞读写。这意味着在 asyncio 中如果调用了 f = file('xx'...

对python3 urllib包与http包的使用详解

urllib包和http包都是面向HTTP协议的。其中urllib主要用于处理 URL,使用urllib操作URL可以像使用和打开本地文件一样地操作。而 http包则实现了对 HTTP协...

Python实现对象转换为xml的方法示例

本文实例讲述了Python实现对象转换为xml的方法。分享给大家供大家参考,具体如下: # -*- coding:UTF-8 -*- ''''' Created on 2010-4-...

python中类变量与成员变量的使用注意点总结

前言 最近在用python写一个项目,发现一个很恶心的bug,就是同由一个类生成的两个实例之间的数据竟然会相互影响,这让我非常不解。后来联想到java的类有类变量也有实例变量,因此翻阅了...