python函数内日志 python日志处理

Loguru:Python 日志终极解决方案日志python函数内日志的作用非常重要python函数内日志,日志可以记录用户的操作、程序的异常,还可以为数据分析提供依据,日志的存在意义就是为了能够在程序在运行过程中记录错误,方便维护和调试,能够快速定位出错的地方 , 减少维护成本 。每个程序员都应该知道,不是为了记录日志而记录日志,日志也不是随意记的 。要实现能够只通过日志文件还原整个程序执行的过程,达到能透明地看到程序里执行情况,每个线程、每个过程到底执行到哪的目的 。日志就像飞机的黑匣子一样,应当能够复原异常的整个现场乃至细节python函数内日志!
最常见的是把输出函数print()当作日志记录的方式,直接打印各种提示信息,常见于个人练习项目里 , 通常是懒得单独配置日志,而且项目太小不需要日志信息,不需要上线,不需要持续运行 , 完整的项目不推荐直接打印日志信息,现实中也几乎没有人这么做 。
我们可以在不少小项目里面看到作者自己写了一个日志模板 , 通常利用print()或者sys.stdout稍微封装一下即可实现简单的日志输出,这里的sys.stdout是 Python 中的标准输出流, print()函数是对sys.stdout的高级封装,当我们在 Python 中打印对象调用print(obj)时候,事实上是调用了sys.stdout.write(obj+'\n')  ,  print()将内容打印到了控制台,然后追加了一个换行符\n。
自写日志模板适合比较小的项目,可以按照自己的喜好编写模板,不需要太多复杂配置 , 方便快捷,但是这种记录日志的方式并不是很规范,有可能你自己觉得阅读体验不错,但是别人在接触你的项目的时候往往需要花费一定的时间去学习日志的逻辑、格式、输出方式等,比较大的项目同样不推荐这种方法 。
一个简单的自写日志模板举例python函数内日志:
日志模板 log.py:
调用日志模块:
日志输出:
在一个完整的项目中,大多数人都会引入专门的日志记录库,而 Python 自带的标准库 logging 就是专门为日志记录而生的,logging 模块定义的函数和类为应用程序和库的开发实现了一个灵活的事件日志系统 。由标准库模块提供日志记录 API 的关键好处是所有 Python 模块都可以使用这个日志记录功能 。所以,你的应用日志可以将你自己的日志信息与来自第三方模块的信息整合起来 。
logging 模块虽然强大 , 但是其配置也是比较繁琐的,在大型项目中通常需要单独初始化日志、配置日志格式等等,K哥在日常使用中通常都会对 logging 做如下的封装写法 , 使日志可以按天保存,保留15天的日志,可以配置是否输出到控制台和文件,如下所示:
输出日志:
它在控制台中是这样的:
当然,如果你不需要很复杂的功能,希望简洁一点,仅仅需要在控制台输出一下日志的话,也可以只进行简单的配置:
对于 logging 模块,即便是简单的使用,也需要自己定义格式 , 这里介绍一个更加优雅、高效、简洁的第三方模块:loguru,官方的介绍是:Loguru is a library which aims to bring enjoyable logging in Python. Loguru 旨在为 Python 带来愉快的日志记录 。这里引用官方的一个 GIF 来快速演示其功能:
Loguru 仅支持 Python 3.5 及以上的版本,使用 pip 安装即可:
Loguru 的主要概念是只有一个:logger
控制台输出:
可以看到不需要手动设置,Loguru 会提前配置一些基础信息,自动输出时间、日志级别、模块名、行号等信息,而且根据等级的不同,还自动设置了不同的颜色,方便观察 , 真正做到了开箱即用!

推荐阅读