python-日志记录logging模块

1.日志级别:_nameToLevel = {
    'CRITICAL': CRITICAL,
    'FATAL': FATAL,
    'ERROR': ERROR,
    'WARN': WARNING,
    'WARNING': WARNING,
    'INFO': INFO,
    'DEBUG': DEBUG,
    'NOTSET': NOTSET,
}
2.流输出:

  • 文件输出,
  • 其他流(终端,控制台,网络等待,默认是标准输出(sys.stdout),即输出到终端,,例如print函数,sys.stderr 是一个文件对象,表示标准错误流。
  • 网络流,HTTP流,handlers类,SMTP 流(电子邮件)。内存流(io.StringIO 或 io.BytesIO),自定义流


3.addHandler 方法用于向日志记录器添加一个或多个日志处理器。这使得日志记录器可以将日志消息分发到多个目的地(例如同时打印到控制台和保存到文件)。

 常见的日志处理器类型

  • StreamHandler:将日志输出到控制台(或任何流对象,默认为 sys.stderr)。
  • FileHandler:将日志输出到指定的文件。
  • RotatingFileHandler:将日志输出到文件,并根据文件大小或时间进行轮转。
  • TimedRotatingFileHandler:按时间进行轮转输出日志。
  • SocketHandler:将日志发送到网络上的服务器。
  • SMTPHandler:将日志通过电子邮件发送

4.示例代码:

import logging
"""日志类"""
class Logger():
    #定义了两个输出流,file_handler文件输出,console_handler,终端输出,格式化器为format_handler,需要添加日志处理器到日志记录器logger中,设定日志记录等级为logging.DEBUG
        self.logger=logging.getLogger()
        self.file_handler=logging.FileHandler(filename="20241202.log")
        self.console_handler=logging.StreamHandler()
        # self.console_handler=logging.handlers.SocketHandler('localhost', 9999)
        format_handler=logging.Formatter('%(asctime)s-%(name)s-%(levelname)s-%(message)s')
        self.file_handler.setFormatter(format_handler)
        self.console_handler.setFormatter(format_handler)
        self.logger.addHandler(self.file_handler)
        self.logger.addHandler(self.console_handler)
        self.logger.setLevel(logging.DEBUG)

    def info(self,msg):
        self.logger.info(msg)

    def error(self,msg):
        self.logger.error(msg)

    def debug(self,msg):
        self.logger.debug(msg)

    def warn(self,msg):
        self.logger.warning(msg)

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值