Python 简单封装logging日志类

支持命令行回显日志和写入日志到文件 

# !usr/bin/python3
# -*- coding=utf-8 -*-
# @Author  : zunsi
# @File : ploggerv1.py
# @Time : 2020-06-21  13:40:20


import os
import logging
from logging import handlers


class MyLogger(logging.Logger):
    def __init__(self, toconsole=True, tofile=False, logpath=None, logfilename='TestLogs'):
        # 设置输出级别、输出渠道、输出日志格式
        # super().__init__(name,level)
        super().__init__(__name__, "DEBUG")
        self.ToConsole = toconsole  # DEBUG: Show debug info for developers. (default False)
        self.ToFile = tofile
        self.log_path = logpath
        self.log_file_name = logfilename


        # 日志格式
        formatter = logging.Formatter(
            "[%(asctime)s] - %(levelname)s -  %(message)s")  # %(filename)s  <%(funcName)s>  [ line:%(lineno)d ] %(pathname)s


        if self.ToConsole:
            cout_handler = logging.StreamHandler()
            cout_handler.setFormatter(formatter)
            self.addHandler(cout_handler)

        if self.ToFile:
            action = "logs"
            path = os.path.join(self.log_path, action)
            if not os.path.exists(path):
                os.makedirs(path)
            log_file_path = os.path.join(path, self.log_file_name + ".log")

            file_handler = logging.handlers.TimedRotatingFileHandler(log_file_path, when='D', interval=1,
                                                                     encoding="utf-8",
                                                                     backupCount=1)
            file_handler.setFormatter(formatter)
            self.addHandler(file_handler)


if __name__ == '__main__':
    logs_path = os.getcwd()
    mlog = MyLogger(toconsole=True, tofile=False, logpath=logs_path)
    mlog.debug("测试,简单封装的日志类!!!")

推荐大佬的日志工具: GitHub - ydf0509/nb_log: pip install nb_log 各种日志handler和自动转化项目的任意print的效果。日志自动彩色炫酷,可点击控制台的日志自动精确跳转到pycharm的文件和行号。文件日志多进程切割安全。在10个最重要方面全方位超过loguru 使用原生 loggng封装,兼容性和替换性100%。

        1、日志能根据级别能够自动变彩色。

        2、print自动变彩色。

        3、日志和print在pycahrm控制台的输出都自动可以点击跳转到文件和行号。

        4、多进程日志切割安全,文件日志写入性能高 。

        5、入参简单,能一键自动记录到多种地方。

使用方法:

        pip install nb_log 


使用场景:

        正式开发

路径:

        windows下:C:\Users\Admin\AppData\Local\Programs\Python\Python38\Lib\site-packages

nb_log 属性:

 

引用:

模块 logging --- Python 的日志记录工具 — Python 3.7.13 說明文件
https://docs.python.org/zh-tw/3.7/library/logging.html

191104-Python 封装一个通用日志插件 - 一灰灰Blog
https://liuyueyi.github.io/hexblog/2019/11/04/191104-Python-%E5%B0%81%E8%A3%85%E4%B8%80%E4%B8%AA%E9%80%9A%E7%94%A8%E6%97%A5%E5%BF%97%E5%B7%A5%E5%85%B7%E7%B1%BB/

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值