为了使用方便,二次封装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. 不要把file,process或者super权限授予管理员以外的账号

    file权限的主要作用是通过select ....into outfile 写到服务器上具有写权限的目录下,作为文本格式存放,具有权限的目录也就是启动mysql时的用户权限目录.(没有理解) 可以将有 ...

  2. XSS类型,防御及常见payload构造总结

    什么是XSS? XSS全称是Cross Site Scripting即跨站脚本,当目标网站目标用户浏览器渲染HTML文档的过程中,出现了不被预期的脚本指令并执行时,XSS就发生了. 最直接的例子:&l ...

  3. CTFshow-萌新赛杂项_签到

    查看网页信息 http://game.ctf.show/r2/ 把网页源码下载后发现有大片空白 使用winhex打开 把这些16进制数值复制到文件中 把20替换为0,09替换为1后 得到一串二进制数值 ...

  4. linux多路径(multipath)

    https://www.itread01.com/articles/1475909423.html

  5. 主题模型值LDA

    主题模型(topic model)是以非监督学习的方式对文集的隐含语义结构(latent semantic structure)进行聚类(clustering)的统计模型. 主题模型主要被用于自然语言 ...

  6. JMETER-正则表达式提取与查看变量是否提取正确

    一.应用场景说明: 在一个线程组中,B请求需要使用A请求返回的数据,也就是常说的关联,将上一个请求的响应结果作为下一个请求的参数,则需要对A请求的响应报文使用后置处理器,其中最方便最常用的就是正则表达 ...

  7. node集群(cluster)

    使用例子 为了让node应用能够在多核服务器中提高性能,node提供cluster API,用于创建多个工作进程,然后由这些工作进程并行处理请求. // master.js const cluster ...

  8. 览器全面禁用三方 Cookie 全栈前端精选 4月16日

    览器全面禁用三方 Cookie 全栈前端精选 4月16日

  9. linux系统层面调优

    linux系统层面调优和常见的面试题 - 云+社区 - 腾讯云 https://cloud.tencent.com/developer/article/1664287

  10. P6739 [BalticOI 2014 Day1] Three Friends 题解

    目录 写在前面 Solution 何为字符串哈希(可跳过): Code 写在前面 P6739 [BalticOI 2014 Day1] Three Friends 听说这题可以用比较暴力的做法过,比如 ...