loguru写日志文件

推荐资源:https://loguru.readthedocs.io/en/stable/overview.html#ready-to-use-out-of-the-box-without-boilerplate

用loguru库写日志,需要配置一个loguru.ini配置文件,可以放到在configs包里。

loguru.ini内容:

#loguru.ini
[log] 
format = {time:YYYY-MM-DD HH:mm:ss},{module}(line:{line}),{level}||{message}
level = ERROR
rotation = 10 MB
retention = 2 days

封装loguru,写日志到.log文件里。

from configparser  import  ConfigParser
from loguru import logger
from utils.handle_path import logs_path, config_path
from time import strftime
class MyLog():
    __instance = None #单例实现
    __init_flag = True #控制init调用,如果调用过就不再调用
    def __new__(cls, *args, **kwargs):
        if not cls.__instance:
            cls.__instance = super().__new__(cls)
        return cls.__instance
    def __init__(self):
        if self.__init_flag: #看是否调用过
            __curdate = strftime('%Y%m%d-%H%M')
            cfg = ConfigParser()
            cfg.read(config_path+'loguru.ini',encoding='utf-8')
            logger.remove(handler_id=None)  #关闭console输出
            logger.add(logs_path+'项目名称_'+__curdate+'.log', #日志存放位置
                       retention=cfg.get('log','retention'), #清理
                       rotation=cfg.get('log','rotation'), #循环 达到指定大小后建立新的日志
                       format=cfg.get('log','format'), #日志输出格式
                       level=cfg.get('log','level')) #日志级别
            self.__init_flag = False #如果调用过就置为False
    def info(self,msg):
        logger.info(msg)
    def warning(self,msg):
        logger.warning(msg)
    def critical(self,msg):
        logger.critical(msg)
    def error(self,msg):
        logger.error(msg)
    def debug(self,msg):
        logger.debug(self,msg)
log = MyLog()
if __name__ == '__main__':

        log1 = MyLog()
        log1.critical('test critical')
        from time import sleep
        sleep(1)
        log2 = MyLog()
        log2.error('test error')
        print(id(log1))
        print(id(log2))

最后的运行结果会写入日志文件

2022-04-06 22:28:32,handle_loguru(line:45),CRITICAL||test critical
2022-04-06 22:28:33,handle_loguru(line:47),ERROR||test error
### 关于 Loguru 的使用教程 Loguru 是一个用于 Python 日志记录的强大工具,旨在简化日志管理流程并提升开发者体验。以下是关于 Loguru 库的一些核心知识点及其常见问题的解答。 #### 安装 Loguru 为了安装 Loguru,可以在终端或命令行界面执行以下命令来完成安装[^1]: ```bash pip install loguru ``` #### 基本使用方法 Loguru 提供了一个简单易用的日志接口,可以快速集成到项目中。下面是一个基础的例子展示如何配置和使用 Loguru 进行日志记录: ```python from loguru import logger # 添加文件输出器,将日志入文件 logger.add("file.log", rotation="500 MB") # 记录不同级别的日志消息 logger.debug("This is a debug message.") logger.info("This is an info message.") logger.warning("This is a warning message.") logger.error("This is an error message.") ``` 上述代码展示了如何向 `file.log` 文件追加日志,并设置自动轮转机制当文件大小达到 500MB 时创建新文件[^3]。 #### 高级功能 除了基本的功能外,Loguru 支持更多高级特性,比如自定义格式化、多线程安全的日志处理以及异常捕获等功能。例如,在程序崩溃时自动保存回溯信息: ```python import sys from loguru import logger def catch_exceptions(exc_type, exc_value, exc_traceback): logger.critical("Uncaught exception:", exc_info=(exc_type, exc_value, exc_traceback)) sys.excepthook = catch_exceptions ``` 这段脚本会捕捉未处理的全局异常并将堆栈追踪打印出来。 #### 解决常见问题 如果遇到无法正常工作的情况,请检查以下几个方面: - **确认已成功导入模块**: 如果提示找不到 'loguru' 模块,则可能是因为尚未正确安装该库或者虚拟环境中缺少依赖项。 - **路径权限不足**: 当尝试把日志入特定目录却失败时,可能是由于当前用户对该位置缺乏必要的读权限所致。 - **时间戳不匹配预期格式**: 可以通过调整参数来自定义日期时间和其他字段的表现形式。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值