Python 比 logging 模块 人性化的log 模块loguru

本文章向大家介绍Python 第三方日志框架loguru使用,主要包括Python 第三方日志框架loguru使用使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

解决中文乱码问题

项目地址 github: https://github.com/Delgan/loguru
文档:https://loguru.readthedocs.io/en/stable/index.html

安装

Python
pip install loguru
1
2
pip install loguru
 

1、输出日志

Python
from loguru import logger logger.debug("这是一条debug日志")
1
2
3
from loguru import logger
logger . debug ( "这是一条debug日志" )
 

终端执行后出现带颜色的日志,挺酷的

2、输出到文件

Python
from loguru import logger logger.add("file_{time}.log") logger.debug("这是一条debug日志") logger.info("这是一条info日志")
1
2
3
4
5
6
7
from loguru import logger
 
logger . add ( "file_{time}.log" )
 
logger . debug ( "这是一条debug日志" )
logger . info ( "这是一条info日志" )
 

目录下多出一个日志文件 :file_2019-03-14_19-53-25_661314.log

3、日志规则

设置日志格式,过滤器,日志级别

Python
from loguru import logger logger.add("file.log", format="{time} {level} {message}", filter="", level="INFO") logger.debug("这是一条debug日志") logger.info("这是一条info日志")
1
2
3
4
5
6
7
from loguru import logger
 
logger . add ( "file.log" , format = "{time} {level} {message}" , filter = "" , level = "INFO" )
 
logger . debug ( "这是一条debug日志" )
logger . info ( "这是一条info日志" )
 

输出

Python
2019-03-14T20:01:25.392454+0800 INFO 这是一条info日志
1
2
2019 - 03 - 14T20 : 01 : 25.392454 + 0800 INFO 这是一条 info日志
 

4、日志文件

文件管理方式

Python
logger.add("file_1.log", rotation="500 MB") # 文件过大就会重新生成一个文件 logger.add("file_2.log", rotation="12:00") # 每天12点创建新文件 logger.add("file_3.log", rotation="1 week") # 文件时间过长就会创建新文件 logger.add("file_X.log", retention="10 days") # 一段时间后会清空 logger.add("file_Y.log", compression="zip") # 保存zip格式
1
2
3
4
5
6
7
8
logger . add ( "file_1.log" , rotation = "500 MB" )      # 文件过大就会重新生成一个文件
logger . add ( "file_2.log" , rotation = "12:00" )      # 每天12点创建新文件
logger . add ( "file_3.log" , rotation = "1 week" )      # 文件时间过长就会创建新文件
 
logger . add ( "file_X.log" , retention = "10 days" )    # 一段时间后会清空
 
logger . add ( "file_Y.log" , compression = "zip" )      # 保存zip格式
 

5、其他参数

Python
logger.add("somefile.log", enqueue=True) # 异步写入 logger.add("somefile.log", serialize=True) # 序列化为json
1
2
3
4
logger . add ( "somefile.log" , enqueue = True )    # 异步写入
 
logger . add ( "somefile.log" , serialize = True )    # 序列化为json
 

6、时间格式化

Python
logger.add("file.log", format="{time:YYYY-MM-DD at HH:mm:ss} | {level} | {message}")
1
2
logger . add ( "file.log" , format = "{time:YYYY-MM-DD at HH:mm:ss} | {level} | {message}" )
 

配合notifiers模块
github: https://github.com/notifiers/notifiers
文档:https://notifiers.readthedocs.io/en/latest/

7、在工程中创建多个文件处理器对象并解决中文乱码问题

Python
# coding=utf-8 import os import sys from loguru import logger BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) log_file_path = os.path.join(BASE_DIR, 'Log/my.log') err_log_file_path = os.path.join(BASE_DIR, 'Log/err.log') logger.add(sys.stderr, format="{time} {level} {message}", filter="my_module", level="INFO") # logger.add(s) # Automatically rotate too big file logger.add(log_file_path, rotation="500 MB", encoding='utf-8') logger.add(err_log_file_path, rotation="500 MB", encoding='utf-8', level='ERROR') # Automatically rotate too big file logger.debug("That's it, beautiful and simple logging!") logger.debug("中文日志可以不") logger.error("严重错误") logger.error("严重错dd误")
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# coding=utf-8
import os
import sys
from loguru import logger
 
BASE_DIR = os.path . dirname ( os.path . dirname ( os.path . abspath ( __file__ ) ) )
 
log_file_path = os.path . join ( BASE_DIR , 'Log/my.log' )
err_log_file_path = os.path . join ( BASE_DIR , 'Log/err.log' )
 
logger . add ( sys . stderr , format = "{time} {level} {message}" ,
           filter = "my_module" , level = "INFO" )
# logger.add(s)
# Automatically rotate too big file
logger . add ( log_file_path , rotation = "500 MB" , encoding = 'utf-8' )
logger . add ( err_log_file_path , rotation = "500 MB" , encoding = 'utf-8' ,
           level = 'ERROR' )    # Automatically rotate too big file
logger . debug ( "That's it, beautiful and simple logging!" )
logger . debug ( "中文日志可以不" )
logger . error ( "严重错误" )
logger . error ( "严重错dd误" )
 



  • zeropython 微信公众号 5868037 QQ号 5868037@qq.com QQ邮箱
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值