使用合理的默认值进行Python日志记录

lg的Python项目详细描述


安装

pip install -U lg

为什么

问:为什么不在stdlib中使用Python的日志模块?在

答:当然可以,但是Python stdlib日志记录往往会让新手感到困惑,而且它有转角大小写的默认行为。在

在这个模块中,我尝试使用有用的默认值使日志易于配置 行为:

  • 默认情况下旋转和压缩日志(使用gzip压缩)。也支持zip
  • 日志行和时间格式的有用默认值(可以手动格式化)
  • 聚合内存缓冲区中的日志行,以最小化磁盘写入操作
  • 编写json日志而不占用大量的CPU开销

多日志文件警告

如果要在脚本的不同部分记录到不同的文件,则需要使用唯一的log_ref值配置不同的日志对象。在

简单用法:编写json日志

本例使用压缩备份将python字典写入json日志。在

fromlgimportLogmylog=Log(log_ref="json_log01",log_path="mylog.log",line_fmt="auto_json",# json-compatible logs, use "auto_string" for text#    json logs have an embedded timestamp on #    each logline.when="midnight",# "D": days, "H": hours, "S": seconds, or "midnight"interval=1,# Rotate every night at midnightbackup_count=10,# Number of logfiles to keeplog_buffer=10*1024,# 10KB memory bufferlog_stdout=True# Also write to stdout)ii=0whileTrue:mylog.log({"this":"hello","index":ii},loglevel="debug",)ii+=1ifii>100000:breakmylog.close()# Close all logging handlers

关于json日志的说明。由于我用json日志格式进行了优化, 请注意,当您将json日志读为json时,必须对它们进行一些重新格式化。“auto_json”选项以json日志格式记录各个行。但是,在添加opening之前,日志文件本身将不兼容json 在日志文件的内容后面加上右括号 看起来像一个json列表)。在

此示例在上写入未加日期戳的原始字符串日志消息 每行。。。在

^{pr2}$

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
是否可以将Ghost CMS与Spring Boot(Java)一起使用?如果没有,还有好的选择吗?   java简单XML框架解析器在Android中发布XML解析   java如何将数组列表设置为listview中的图像视图   java从JPA查找GUI   java为什么XSSFWorksheet的getName()不起作用?   java为什么Eclipse不记得我的启动配置?   使用java处理Json API响应   调用AlertDialog。按下后退按钮时Android片段的Java生成器   在Android中以编程方式选择项目ListView   java交错网格布局用于从实时数据库加载图像,不显示   java如何找到测试套件。Testng中的xml执行状态   java如何使用Appium通过selenium找到警报对话框?   java如何避免使用Johann的   学生编辑不起作用(Java+Spring+MySQl)?   EclipseMilo中的java身份验证clientserver   java Solr DIH获取大小无效   j_安全检查上的java筛选器不工作。Glassfish V3 Netbeans 6.8