为了使用方便,二次封装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)

第三方库:logger,自定义日志封装模块的更多相关文章

  1. iOS 原生实现生成二维码(CoreImage)工具类,不依赖第三方库,可自定义背景颜色,添加logo(Swift 4.0)

    import Foundation import CoreImage import UIKit extension UIColor { var coreImageColor: CIColor { re ...

  2. 【C++】将调用第三方库的代码封装成动态库供上层调用

    需求分析 Java应用中需要调用C++的程序,而这个C++的程序中需要引入一个第三方静态库.所以需要将该程序编译成一个动态库文件(.so)供Java调用. 步骤 使用CLion创建一个动态库的项目,会 ...

  3. 函数式编程(logging日志管理模块)

    本节内容 日志相关概念 logging模块简介 使用logging提供的模块级别的函数记录日志 logging模块日志流处理流程 使用logging四大组件记录日志 配置logging的几种方式 向日 ...

  4. Python的基本库与第三方库

    一:Python 模块,包,库的概念理解: 1.python模块是: python模块:包含并且有组织的代码片段为模块. 表现形式为:写的代码保存为文件.这个文件就是一个模块.sample.py 其中 ...

  5. Magicodes.Pay,打造开箱即用的统一支付库,已提供ABP模块封装

    Magicodes.Pay,打造开箱即用的统一支付库,已提供ABP模块封装 简介 Magicodes.Pay,是心莱科技团队提供的统一支付库,相关库均使用.NET标准库编写,支持.NET Framew ...

  6. ReactNative: 将自定义的ReactNative组件制作成第三方库的详细流程(制作-->发布)

    一.简介 在讲本篇博文之前,需要你熟知怎么自定义ReactNative组件,然后才好学习将自定义的ReactNative组件制作成第三方库.本文中的自定义的ReactNative组件LoginMana ...

  7. 爆料喽!!!开源日志库Logger的使用秘籍

    日志对于开发来说是非常重要的,不管是调试数据查看.bug问题追踪定位.数据信息收集统计,日常工作运行维护等等,都大量的使用到.今天介绍著名开源日志库Logger的使用,库的地址:https://git ...

  8. Python学习笔记011_模块_标准库_第三方库的安装

    容器 -> 数据的封装 函数 -> 语句的封装 类 -> 方法和属性的封装 模块 -> 模块就是程序 , 保存每个.py文件 # 创建了一个hello.py的文件,它的内容如下 ...

  9. Python学习(六)模块 —— 第三方库

    Python 第三方库 安装第三方库 在Python中,安装第三方库包,是通过setuptools这个工具完成的.Python有两个封装了setuptools的包管理工具:easy_install和p ...

随机推荐

  1. (十)Python装饰器

    装饰器:本质就是函数,功能是为其他函数添加附加功能. 两个原则: 1.不修改被修饰函数的源代码 2.不修改被修饰函数的调用方式 一个栗子 def test(): res = 0 for i in ra ...

  2. 【Linux】rsync中sending incremental file list时间优化

    每次使用rsync的时候,前面出现sending incremental file list 这句之后要等待很长时间 查了很多帖子和官方文档后,发现是-c这个选项的问题, -v, --verbose ...

  3. 【Linux】find查找空文件夹

    linux下批量删除空文件(大小等于0的文件)的方法 find . -name "*" -type f -size 0c | xargs -n 1 rm -f 就是删除1k大小的文 ...

  4. poj-Decoding Morse Sequences(动态规划)

    Description Before the digital age, the most common "binary" code for radio communication ...

  5. 聊聊 React

    都说 React 开发效率高,但效率高在哪呢?来细看看. 用 d3 写一个 List: const renderList = data => { d3.select("ul" ...

  6. 5.2 Spring5源码--Spring AOP源码分析二

    目标: 1. 什么是AOP, 什么是AspectJ 2. 什么是Spring AOP 3. Spring AOP注解版实现原理 4. Spring AOP切面原理解析 一. 认识AOP及其使用 详见博 ...

  7. wmic 操作文件的datafile

    wmic datafile /?动词有ASSOC,CALL,CREATE,DELETE,GET,LIST 这几个 命令:wmic datafile where "filename='dsc0 ...

  8. 03. struts2中Action配置的各项默认值

    Action中的各项默认值 Action各项配置 <action name="helloworld" class="com.liuyong666.action.He ...

  9. jQuery 选项卡切换过渡效果

    <!DOCTYPE html> <head> <meta charset="utf-8"> <title></title> ...

  10. 【vulnhub】靶机-【DC系列】DC9(附靶机)

    出品|MS08067实验室(www.ms08067.com) 本文作者:大方子(Ms08067实验室核心成员) 主机信息 Kali:192.168.56.113 DC9:192.168.56.112 ...