python项目封装日志通用工具

关于日志颜色控制,详见:python打印高亮-日志颜色输出控制

一、日志工具类utils_log.py

"""
定义log对象,以及改写log的部分函数,改变日志的输出颜色
"""

import os, logging, logging.config, settings


class MyLogger(logging.Logger):
    """重写Logger的某些函数,给这些等级的日志输出不同颜色"""

    def info(self, msg, *args, **kwargs):
        """重写info函数"""

        if self.isEnabledFor(20):
            self._log(20, "\033[36;1m%s\033[0m" % msg, args, **kwargs)

    def error(self, msg, *args, **kwargs):
        """重写error函数"""

        if self.isEnabledFor(40):
            self._log(40, "\033[31;1m%s\033[0m" % msg, args, **kwargs)


logging.setLoggerClass(MyLogger)
logging.config.fileConfig(os.path.join(settings.PROJECT_ROOT, "logger.conf"))
log = logging.getLogger("infile")
log.info("============== log initialized ==============")

二.logger.conf

#logger.conf

###############################################
[loggers]
keys=root,infile

[logger_root]
level=ERROR
handlers=error

[logger_infile]
level=DEBUG
handlers=console,socket
qualname=infile
propagate=0

###############################################
[handlers]
keys=console,socket,error

[handler_console]
class=StreamHandler
formatter=verbose
args=(sys.stdout,)

[handler_socket]
class=handlers.SocketHandler
formatter=verbose
args=('localhost', handlers.DEFAULT_TCP_LOGGING_PORT)

[handler_error]
class=StreamHandler
formatter=simple
args=(sys.stderr,)

###############################################
[formatters]
keys=verbose,simple

[formatter_verbose]
format=[%(asctime)s][%(process)d][%(thread)d][%(levelname)-5s][%(filename)s:%(lineno)d][%(funcName)s]: %(message)s
datefmt=%m%d %H:%M:%S

[formatter_simple]
format=[%(asctime)s][%(name)s]: %(message)s
datefmt=%m%d %H:%M:%S

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值