A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 我是楠楠 黑马粉丝团   /  2019-9-24 14:10  /  1012 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

目标
1. 掌握如何设置日志级别
2. 掌握如何设置日志格式
3. 掌握如何将日志信息输出到文件中
1. logging模块
Python中有一个标准库模块logging可以直接记录日志

1.1 基本用法
import  logging

logging.debug("这是一条调试信息")
logging.info("这是一条普通信息")
logging.warning("这是一条警告信息")
logging.error("这是一条错误信息")
logging.critical("这是一条严重错误信息")
1.2 设置日志级别
logging中默认的日志级别为WARNING,程序中大于等于该级别的日志才能输出,小于该级别的日志不会被打印出来。

设置日志级别
logging.basicConfig(level=logging.DEBUG)
如何选择日志级别
在开发环境和测试环境中,为了尽可能详细的查看程序的运行状态来保证上线后的稳定性,可以使用DEBUG 或INFO级别的日志获取详细的日志信息,这是非常耗费机器性能的。
在生产环境中,通常只记录程序的异常信息、错误信息等(设置成WARNING或ERROR级别),这样既可以减小服务器的I/O压力,也可以提高获取错误日志信息的效率和方便问题的排查。

1.3 设置日志格式
默认的日志的格式为:
日志级别:Logger名称:日志内容
自定义日志格式:

logging.basicConfig(format="%(levelname)s:%(name)s:%(message)s")
format参数中可能用到的格式化信息:
占位符
描述
%(name)s
Logger的名字
%(levelno)s
数字形式的日志级别
%(levelname)s
文本形式的日志级别
%(pathname)s
调用日志输出函数的模块的完整路径名,可能没有
%(filename)s
调用日志输出函数的模块的文件名
%(module)s
调用日志输出函数的模块名
%(funcName)s
调用日志输出函数的函数名
%(lineno)d
调用日志输出函数的语句所在的代码行
%(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
用户输出的消息
示例代码:
[AppleScript] 纯文本查看 复制代码
import  logging

fmt  =  '%(asctime)s  %(levelname)s  [%(name)s]  [%(filename)s(%(funcName)s:%(lineno)d)]  -  %(message)s' logging.basicConfig(level=logging.INFO,  format=fmt)

logging.debug("调试")
logging.info("信息") logging.warning("警告")
logging.error("错误")
1.1 将日志信息输出到文件中
默认情况下Python的logging模块将日志打印到了标准输出中(控制台)   将日志信息输出到文件中
logging.basicConfig(filename="a.log")
示例代码:
[AppleScript] 纯文本查看 复制代码
import  logging
fmt  =  '%(asctime)s  %(levelname)s  [%(name)s]  [%(filename)s(%(funcName)s:%(lineno)d)]  -  %(message)s' logging.basicConfig(filename="a.log",  level=logging.INFO,  format=fmt)

logging.debug("调试")
logging.info("信息") logging.warning("警告") logging.error("错误")

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马