zoukankan      html  css  js  c++  java
  • 第三方库:logger,自定义日志封装模块

    为了使用方便,二次封装logger。

    import os
    import datetime
    from loguru import logger
    
    
    class Logings:
        __instance = None
        # 文件名称,按天创建
        DATE = datetime.datetime.now().strftime('%Y-%m-%d')
    
        # 项目路径下创建log目录保存日志文件
        logpath = os.path.join(os.path.dirname(os.getcwd()), "logs")  # 拼接指定路径
        # 判断目录是否存在,不存在则创建新的目录
        if not os.path.isdir(logpath): os.makedirs(logpath)
    
        logger.add('%s\%s.log' % (logpath, DATE),
                   format="{time:YYYY-MM-DD HH:mm:ss}  | {level}> {elapsed}  | {message}",
                   encoding='utf-8',
                   retention='1 days',  # 设置历史保留时长
                   # rotation="5kb",  # 设置文件大小,rotation="12:00",rotation="1 week"
                   backtrace=True,  # 回溯
                   diagnose=True,   # 诊断
                   enqueue=True)  # 异步写入
    
        def __new__(cls, *args, **kwargs):
            if not cls.__instance:
                cls.__instance = super(Logings, cls).__new__(cls, *args, **kwargs)
            return cls.__instance
    
        def info(self, msg, *args, **kwargs):
            return logger.info(msg, *args, **kwargs)
    
        def debug(self, msg, *args, **kwargs):
            return logger.debug(msg, *args, **kwargs)
    
        def warning(self, msg, *args, **kwargs):
            return logger.warning(msg, *args, **kwargs)
    
        def error(self, msg, *args, **kwargs):
            return logger.error(msg, *args, **kwargs)
    
        def exception(self, msg, *args, exc_info=True, **kwargs):
            return logger.exception(msg, *args, exc_info=True, **kwargs)
    
    
    if __name__ == '__main__':
        logs = Logings()
    
        def func(a, b):
            return a/b
    
        def my(z, c):
            try:
                func(z,c)
            except ZeroDivisionError:
                logs.exception('...........')
        my(5,0)
  • 相关阅读:
    时间编程
    移动文件流的读写指针---fseek
    Xadmin添加用户小组件出错render() got an unexpected keyword argument 'renderer
    xadmin安装
    Django:Python3.6.2+Django2.0配置MySQL 转载
    gitignore文件不生效
    django图片上传修改图片名称
    python3 提示sqlite模块不存在
    Django-admin列表展示上传图片
    django使用admin站点上传图片
  • 原文地址:https://www.cnblogs.com/hoyun/p/14004349.html
Copyright © 2011-2022 走看看