Loguru基础教程

字节觅月鹤
• 阅读 2047

Python模块之Loguru基础教程

# Author=Hanosn

from loguru import logger

# 打印不同类型的日志
logger.debug("debug message")
logger.info("info level message")
logger.warning("warning level message")
logger.critical("critical level message")

# 日志格式和存入日志级别
logger.add("test.log", format="{time}|{level}|{message}", level="INFO")

# 序列化日志
logger.add("test.log", serialize=True)

# 按照日志大小自动切割日志,还可以按照时间切割:rotation='00:00',rotation='1 week',我们想要设置日志文件最长保留10天,retention='10 days'
logger.add("test.log", rotation="500 MB")

# loguru 还可以配置文件的压缩格式,比如使用 zip 文件格式保存
logger.add('runtime.log', compression='zip')

# 在很多情况下,如果遇到运行错误,而我们在打印输出 log 的时候万一不小心没有配置好 Traceback 的输出,很有可能我们就没法追踪错误所在了。但用了 loguru 之后,我们用它提供的装饰器就可以直接进行 Traceback 的记录,类似这样的配置即可:
@logger.catch
def my_function(x, y, z):
    # An error? It's caught anyway!
    return 1 / (x + y + z)

# 我们做个测试,我们在调用时三个参数都传入 0,直接引发除以 0 的错误,看看会出现什么情况:
my_function(0, 0, 0)

# 运行完毕之后,可以发现 log 里面就出现了 Traceback 信息,而且给我们输出了当时的变量值,真的是不能再赞了!结果如下:

> File "run.py", line 15, in <module>
    my_function(0, 0, 0)
    └ <function my_function at 0x1171dd510>

  File "/private/var/py/logurutest/demo5.py", line 13, in my_function
    return 1 / (x + y + z)
                │   │   └ 0
                │   └ 0
                └ 0

ZeroDivisionError: division by zero
点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
美凌格栋栋酱 美凌格栋栋酱
6个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
墨冰 墨冰
4年前
最好用的Python学习教程第一篇章
学习不打烊,充电加油只为遇到更好的自己。希望大家如果觉得好的话可以点赞,评论鼓励一下。一、从这里学起?学Python你应该知道这些内容。1.1导语如何快速学会Python?这篇博客会告诉你如何从无到有,构建自己的知识框架,博客主励志打造最好用的Python基础教程。1.2为什么要学习Python简单易学Python是一种代表简单主义思想的语言,
Stella981 Stella981
3年前
Python3:sqlalchemy对mysql数据库操作,非sql语句
Python3:sqlalchemy对mysql数据库操作,非sql语句python3authorlizmdatetime2018020110:00:00coding:utf8'''
Stella981 Stella981
3年前
Scapy 从入门到放弃
0x00前言最近闲的没事,抽空了解下地表最强的嗅探和收发包的工具:scapy。scapy是一个python模块,使用简单,并且能灵活地构造各种数据包,是进行网络安全审计的好帮手。0x01安装因为2020年python官方便不再支持python2,所以使用python3安装。!(https://oscimg.oschina.net/os
Stella981 Stella981
3年前
Python之time模块的时间戳、时间字符串格式化与转换
Python处理时间和时间戳的内置模块就有time,和datetime两个,本文先说time模块。关于时间戳的几个概念时间戳,根据1970年1月1日00:00:00开始按秒计算的偏移量。时间元组(struct_time),包含9个元素。 time.struct_time(tm_y
Stella981 Stella981
3年前
Python 环境搭建
pythonbug集目录\toc\00python模块下载地址pyhton模块下载地址(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fwww.lfd.uci.edu%2F%7Egohlke%2Fpythonlibs%2F)01pythonpip
Wesley13 Wesley13
3年前
mysql数据库的查询
1、“查”——之单表查询INSERTINTOstudent2(name,grade,gender)VALUES('songjiang',40,'男'),('wuyong',100,'男'),('qinming',90,'男'),('husanniang',88,'女'),('sunerniang',66,'女'),('wus
Stella981 Stella981
3年前
RabbitMQ基础教程之基于配置的消费者实现
RabbitMQ基础教程之基于配置的消费者实现相关博文,推荐查看:1.RabbitMq基础教程之安装与测试(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fliuyueyi.github.io%2Fhexblog%2F2018%
Stella981 Stella981
3年前
Python 第三方日志框架loguru使用
解决中文乱码问题项目地址github:https://github.com/Delgan/loguru(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fgithub.com%2FDelgan%2Floguru)文档:https://loguru.readth
Stella981 Stella981
3年前
Python3常用模块
logging模块一、日志级别CRITICAL50FATALCRITICALERROR40WARNING30WARNWARNINGINFO20DEBUG10NOTSET0不设置二、默认级
字节觅月鹤
字节觅月鹤
Lv1
笑是我最奢侈的表情,这一生我只有把它泛滥成灾。
文章
4
粉丝
0
获赞
0