ITPub博客

首页 > 应用开发 > Python > 好程序员Python培训之log日志功能及设置方法

好程序员Python培训之log日志功能及设置方法

原创 Python 作者:好程序员 时间:2020-09-30 11:35:27 0 删除 编辑

  好程序员Python 培训 分享 log 日志功能及设置方法 的详细介绍,首先引入Python 中有个 logging 模块可以完成相关信息的记录,在 debug 时用它往往事半功倍,下面一起跟随小编过来看看吧。

 

一、日志级别( 从低到高 )

 

DEBUG: 详细的信息 , 通常只出现在诊断问题上

 

INFO: 确认一切按预期运行

 

WARNING: 一个迹象表明 , 一些意想不到的事情发生了 , 或表明一些问题在不久的将来 ( 例如。磁盘空间低” ) 。这个软件还能按预期工作。

 

ERROR: 更严重的问题 , 软件没能执行一些功能

 

CRITICAL: 一个严重的错误 , 这表明程序本身可能无法继续运行

 

注:这5 个等级,也分别对应 5 种打日志的方法: debug info warning error critical 。默认的是 WARNING ,当在 WARNING 或之上时才被跟踪。

 

二、日志输出:显示到控制台或保存到文件中,可以灵活选用

 

# 这里为了简便,同时处理:输出控制台和保存到文件中

 

import logging

 

# 第一步,创建一个 logger

logger = logging.getLogger()

logger.setLevel(logging.INFO) # Log 等级总开关

 

# 第二步,创建一个 handler ,用于写入日志文件

logfile = './log.txt'

fh = logging.FileHandler(logfile, mode='a') # open 的打开模式这里可以进行参考

fh.setLevel(logging.DEBUG) # 输出到 file log 等级的开关

 

# 第三步,再创建一个 handler ,用于输出到控制台

ch = logging.StreamHandler()

ch.setLevel(logging.WARNING)  # 输出到 console log 等级的开关

 

# 第四步,定义 handler 的输出格式

formatter = logging.Formatter("%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s")

fh.setFormatter(formatter)

ch.setFormatter(formatter)

 

# 第五步,将 logger 添加到 handler 里面

logger.addHandler(fh)

logger.addHandler(ch)

 

# 日志

logger.debug(' 这是 logger debug message')

logger.info(' 这是 logger info message')

logger.warning(' 这是 logger warning message')

logger.error(' 这是 logger error message')

logger.critical(' 这是 logger critical message')

 

三、日志格式说明

 

logging.basicConfig 函数中,可以指定日志的输出格式 format ,这个参数可以输出很多有用的信息,如下 :

 

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


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/69913864/viewspace-2725237/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-03-20

  • 博文量
    307
  • 访问量
    130889