一、loguru的使用

Loguru 一个能彻底解放你的日志记录器。
它即插即用,具备多种方式滚动日志、自动压缩日志文件、定时删除等功能。
除此之外,多线程安全、高亮日志、日志告警等功能也不在话下。
下面就给大家介绍一下这个强大工具的基本使用方法。
Loguru 安装方式很简单,打开终端输入:pip install loguru

import os
import sys
from loguru import logger
import config.BaseConfig as BaseConfigclass LogUtils:def __new__(cls, *args, **kwargs):# 解决重复打印logger.remove()logger.add(sys.stderr, level="INFO")logFilepath = BaseConfig.baseFilepath + "/logs"# 判断目录是否存在,不存在则创建新的目录if not os.path.isdir(logFilepath):os.makedirs(logFilepath)logger.add(logFilepath + "/{time:YYYY-MM-DD}.log",  # 指定文件format="{time:YYYY-MM-DD HH:mm:ss:SSS} | {level} | Process:{process.name}:{process.id} ""| Thread:{thread.name}:{thread.id} | {file.path}:{line} | {message}",encoding="utf-8",rotation="00:00",  # 按天分割# serialize=True,  # 将记录的消息转化成JSON字符串backtrace=True,  # 回溯diagnose=True,  # 诊断enqueue=True,  # 异步写入)return logger

二、logging的使用

logging是Python自带的日志模块,主要有以下几个部分:

  1. 记录器暴露了应用程序代码直接使用的接口。

  2. 处理器将日志记录(由记录器创建)发送到适当的目标。

  3. 过滤器提供了更细粒度的功能,用于确定要输出的日志记录。

  4. 格式器指定最终输出中日志记录的样式。

日志级别

级别

数值

CRITICAL

50

ERROR

40

WARNING

30

INFO

20

DEBUG

10

NOTSET

0

记录器

setLevel(level)

给记录器设置阈值为 level 。日志等级小于 level 会被忽略。严重性为 level 或更高的日志消息将由该记录器的任何一个或多个处理器发出,除非将处理器的级别设置为比 level 更高的级别。

创建记录器时,级别默认设置为 NOTSET。

addHandler(hdlr)  将指定的处理器 hdlr 添加到此记录器。

addFilter(filter) 将指定的过滤器 filter 添加到此记录器。

debug(msg, *args, **kwargs) 在此记录器上记录 DEBUG 级别的消息。

info(msg, *args, **kwargs) 在此记录器上记录 INFO 级别的消息。

warning(msg, *args, **kwargs) 在此记录器上记录 WARNING 级别的消息。

error(msg, *args, **kwargs) 在此记录器上记录 ERROR 级别的消息。

critical(msg, *args, **kwargs) 在此记录器上记录 CRITICAL 级别的消息。

log(level, msg, *args, **kwargs) 在此记录器上记录 level 整数代表的级别的消息。

处理器

StreamHandler

它可将日志记录输出发送到数据流例如 sys.stdoutsys.stderr 或任何文件类对象(或者更精确地说,任何支持 write() 和 flush() 方法的对象)。

FileHandler

它可将日志记录输出到磁盘文件中。

格式器

Formatter(fmt=Nonedatefmt=Nonestyle='%'validate=True*defaults=None)

import logginglogging.basicConfig(filename='app.log', #配置文件路径,输出日志保存到文件level=logging.DEBUG, #设置日志输出等级format='%(asctime)s:%(levelname)s:%(message)s') #自定义日志格式logger = logging.getLogger('peewee')logger.addHandler(logging.StreamHandler())

日志加颜色 pip install termcolor

from termcolor import colored
import logginglogging.basicConfig(format="[%(asctime)s] >>> %(levelname)s %(name)s: %(message)s", level=logging.INFO)self.loger = logging.getLogger(f'DarkNet_ChineseTradingNetwork')self.info = lambda txt: self.loger.info(colored(txt, 'blue'))self.report = lambda txt: self.loger.info(colored(txt, 'green'))self.warn = lambda txt: self.loger.info(colored(txt, 'yellow'))self.error = lambda txt: self.loger.info(colored(txt, 'red'))

Python日志模块相关推荐

  1. python日志模块方法_python日志模块logbook使用方法

    python自带了日志模块logging,可以用来记录程序运行过程中的日志信息.同时python还有logbook模块用来取代logging模块,在很多的项目中logbook模块使用也是比较的多,因此 ...

  2. python日志模块_Python之日志处理(logging模块)

    转载自:https://www.cnblogs.com/yyds/p/6901864.html 本节内容 日志相关概念 logging模块简介 使用logging提供的模块级别的函数记录日志 logg ...

  3. Django中间件与python日志模块 介绍

    一.Django中间件 1.1 介绍 Django中的中间件是一个轻量级.底层的插件系统,介于request与response处理之间的一道处理过程(用来处理特定业务的请求和响应).中间件的设计为开发 ...

  4. Python日志模块logging高级用法

    推荐图书: <Python程序设计(第3版)>,(ISBN:978-7-302-55083-9),董付国,清华大学出版社,2020年6月第1次印刷,2021年12月第11次印刷,山东省一流 ...

  5. python 日志模块--python logbook使用方法

    python自带了日志模块logging,可以用来记录程序运行过程中的日志信息.同时python还有logbook模块用来取代logging模块,在很多的项目中logbook模块使用也是比较的多,因此 ...

  6. Python日志模块logging,这一篇就够了

    ​ 橙好科技logging模块教程 文章目录 1-logging介绍 2-日志作用 3-日志配置basicConfig 3-日志级别level 4-日志格式format 4-输出日志到控制台 5-输出 ...

  7. python ssl模块用法详解_一看就懂,Python 日志模块详解及应用!

    日志概述 百度百科的日志概述: Windows网络操作系统都设计有各种各样的日志文件,如应用程序日志,安全日志.系统日志.Scheduler服务日志.FTP日志.WWW日志.DNS服务器日志等等,这些 ...

  8. python 日志模块 logging

    如何使用python自带的 logging 模块实现日志功能 1.初始化一个logger对象 1)引入模块 import os import logging import sys 2)初始化变量,声明 ...

  9. Python 日志模块Loguru的使用

    Loguru 一个能彻底解放你的日志记录器. 它即插即用,具备多种方式滚动日志.自动压缩日志文件.定时删除等功能. 除此之外,多线程安全.高亮日志.日志告警等功能也不在话下. 下面就给大家介绍一下这个 ...

最新文章

  1. 网页制作知识:XHTML 和 DOCTYPE 切换
  2. java i 底层原理,《Java基础知识》Java Hash底层原理
  3. Android之GSON解析JSON
  4. textarea 聚焦后边框_textarea焦点的用法实现获取焦点清空失去焦点提示效果
  5. java 自旋锁_java锁的种类以及辨析(一):自旋锁
  6. Exchange 邮件投递被拒的问题分析
  7. 广州站长沙龙 MIP 问题及答案
  8. socketmq 设置队列大小_[译] TCP的SYN队列和Accept队列
  9. automake使用实例
  10. [Java] 蓝桥杯BASIC-26 基础练习 报时助手
  11. Flash CS4运行时提示:Java运行时环境初始化时出现错误。您可能需要重新安装 Flash。解决方案
  12. MySQL 替换手机号码中间4位为星号显示
  13. 二手平台android界面,Android二手书交易app设计(2)启动图Activity
  14. Robot framework模拟打开浏览器问题
  15. html360全景图原理,html360°全景展示 示例
  16. GitLab官网安全更新(2022-06-30)
  17. 上海亚商投顾:沪指失守3300点 卫星导航概念全天强势
  18. 左倾堆(对两个优先队列合并)
  19. java.lang.ClassNotFoundException:teat1问题和CentOS 8 jdk安装
  20. babylon babylonjs 内置角度弧度转换 L.J

热门文章

  1. 一文搞懂单向散列函数
  2. 白盒测试之逻辑覆盖准则
  3. 720度全景带你vr云游景区,vr云游感受和应用介绍
  4. jq加载json数据实现三级联动
  5. html中的文本在指定位置换行
  6. 英语学习笔记——语法篇(持续更新)
  7. linux路由器 性能测试工具,使用iperf测试路由器性能
  8. oracle OCP指南
  9. 架构、框架和设计模式
  10. Polkadot波卡链众筹成本价与总量、创始人团队简介