摘要:先来一段程序告知怎样配置日志。指定日期时间格式。需要说明的是,和不能同时提供,否则会引发异常中新添加的配置项。
先来一段程序告知python怎样配置日志。
logging.basicConfig(level=logging.DEBUG) # 设置日志级别 # 创建日志记录器,指明日志保存的路径、每个日志文件的最大大小、保存的日志文件个数上限 file_log_handler = RotatingFileHandler("logs/log", maxBytes=1024 * 1024 * 100, backupCount=10) # 创建日志记录的格式 日志等级 输入日志信息的文件名 行数 日志信息 formatter = logging.Formatter("%(levelname)s %(filename)s:%(lineno)d %(message)s") # 为刚创建的日志记录器设置日志记录格式 file_log_handler.setFormatter(formatter) # 为全局的日志工具对象(flask app使用的)添加日志记录器 logging.getLogger().addHandler(file_log_handler)
分析代码:
basicConfig():对日志系统进行一次性配置,以下是可以指定的关键字参数 filename:指定日志输出目标文件的文件名,指定该设置项后日志信心就不会被输出到控制台了 filemode:指定日志文件的打开模式,默认为"a"。需要注意的是,该选项要在filename指定时才有效 format:指定日志格式字符串,即指定日志输出时所包含的字段信息以及它们的顺序。logging模块定义的格式字段下面会列出。 datefmt:指定日期/时间格式。需要注意的是,该选项要在format中包含时间字段%(asctime)s时才有效 level:指定日志器的日志级别 stream:指定日志输出目标stream,如sys.stdout、sys.stderr以及网络stream。需要说明的是,stream和filename不能同时提供,否则会引发 ValueError异常 handlers:Python 3.3中新添加的配置项。该选项如果被指定,它应该是一个创建了多个Handler的可迭代对象,这些handler将会被添加到root logger。需要说明的是:filename、stream和handlers这三个配置项只能有一个存在,不能同时出现2个或3个,否则会引发ValueError异常。 RotatingFileHandler():轮转文件处理器,将日志消息发送到磁盘文件,并支持日志文件按大小切割 FileHandler():将日志消息发送到磁盘文件,默认情况下文件大小会无限增长 StreamHandler():将日志消息发送到输出到Stream,如std.out, std.err或任何file-like对象。 Formatter():格式器,决定日志记录的最终输出格式 %(levelname)s:日志记录的级别 %(message)s:日志记录的内容 %(asctime)s:日志记录的时间 %(pathname)s:调用日志记录文件的全路径 %(filename)s:pathname的文件名部分 %(module)s:pathname的文件名,不包含后缀 %(funcName)s:调用日志记录文件的函数名 getLogger():创建一个Logger对象 addHandler():添加一个处理器日志级别
以下是由低到高,默认设置等级后不显示低等级的消息
DEBUG
INFO
WARNING
ERROR
CRITICAL(很少使用)
参考文档:https://www.cnblogs.com/yyds/...
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/42911.html
摘要:上一篇文章模块分析第节模块一日志记录的级别优先级,记录调试的详细信息,只在调试时开启优先级,记录普通的消息,报告错误和警告等待。监听端口号上一篇文章模块分析第节模块 上一篇文章:Python模块分析:第3节-typing模块 一、日志记录的级别 debug:优先级10,记录调试的详细信息,只在调试时开启 info:优先级20,记录普通的消息,报告错误和警告等待。 warning:优...
Python Logging原来真的远比我想象的要复杂很多很多,学习路线堪比git。但是又绕不过去,alternatives又少,所以必须要予以重视,踏踏实实认认真真的来好好学学才行。 学习Logging的目的:简单脚本还好,print足够。但是稍微复杂点,哪怕是三四个文件加起来两三百行代码,调试也开始变复杂起来了。再加上如果是后台长期运行的那种脚本,运行信息的调查更是复杂起来。一开始我还在各种查...
摘要:原因是,直接传递格式化后的字符串会导致参数被完全求值,这个有可能是非必要的,会导致日志性能下降。添加一个过滤器用来进行消息格式化上面的中的中文注释部分直接说明了解决方案。 问题 Python的logging库是标准库中用来实现日志的库,功能强大,而且使用起来也算是方便。该库提供了很多个不同的Handler,用来对日志进行不同的处理。例如FileHandler用来将日志记录到文件,Rot...
摘要:每一条日志记录也包含级别,代表对应消息的严重程度。即格式化器,主要功能是确定最终输出的形式和内容。最好是日志能够按自然天进行记录和分割。 上一章学习了自动化测试,很好,现在我们可以绞尽脑汁写出一份全面的测试,来保证代码永远健康了。 话虽如此,但是作为一个独立开发者很难写出真正全面的测试代码。这是因为用户在使用你的网站时可不会循规蹈矩,而是会以各种怪异的姿势浏览网页、上传数据。但这也不是...
摘要:最近修改了项目里的相关功能,用到了标准库里的模块,在此做一些记录。可能没有线程名。可能没有用户输出的消息日志级别有如下级别,,,,默认级别是,模块只会输出指定以上的。在或者中这是很常见的方式。正常的做法应该是全局只配置一次。 最近修改了项目里的logging相关功能,用到了python标准库里的logging模块,在此做一些记录。主要是从官方文档和stackoverflow上查询到的一...
阅读 3094·2021-11-22 09:34
阅读 594·2021-11-22 09:34
阅读 2440·2021-10-08 10:18
阅读 3373·2021-09-22 15:57
阅读 2586·2021-09-22 15:25
阅读 2400·2019-08-30 15:54
阅读 2099·2019-08-30 15:44
阅读 1801·2019-08-29 11:18