python logging 模块(三)

本文深入探讨了Python logging模块中SocketHandler、Filter的功能及使用方法,并介绍了如何通过配置文件来定制化logging行为。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这篇重点是讲解logging 模块的ScodkeHandler, Filter, 以及logging模块的文件配置方式

  • SocketHandler
    socketHandler 的用法比较复杂,客户端的写法与上一章节所讲的基本类似,但是我们需要对服务端代码进行相应的修改。(ps: 如果用socket模块写服务端,返回的是一堆乱码, 用正常的socketServer会返回正确的内容,但格式会发生问题,有一些乱的符号)

  • Filter
    Filter的用法比较简单,就是通过设置logger的名字,来规定只有被允许的logger和logger的子logger才能打印。代码如下:

    import logging
    
    fmt = '%(asctime)s - %(filename)s:%(lineno)s - %(name)s - %(message)s'
    s_handler = logging.StreamHandler()
    formatter = logging.Formatter('${name}: ${levelname} ${asctime} ${message}', '%Y-%m-%d %H:%M:%S', '$')
    s_handler.setFormatter(formatter)
    
    
    ss_logger = logging.getLogger("ss")
    a_filter = logging.Filter("ss.aa")
    
    ss_logger.addHandler(s_handler)
    aa_logger = logging.getLogger("ss.aa")
    bb_logger = logging.getLogger('ss.aa.bb')
    
    s_handler.addFilter(a_filter)
    
    ss_logger.error("asasdasd")
    aa_logger.error("asdasd")
    bb_logger.error('asdsdasdasd')
    
    
  • logging.conf
    logging.conf 是通过配置文件的方式,来配置logging的各项属性:
    下面是配置文件的内容
[loggers]
keys=root

[handlers]
keys=consoleHandler,fileHandler

[formatters]
keys=simpleFormatter

[logger_root]
level=DEBUG
handlers=fileHandler


[handler_consoleHandler]
class=StreamHandler
level=DEBUG
formatter=simpleFormatter
args=(sys.stdout,)

[handler_fileHandler]
class=FileHandler
level=DEBUG
format=simpleFormatter
args=("./loggg.log", 'a')

[formatter_simpleFormatter]
format=%(asctime)s - %(name)s - %(levelname)s - %(message)s
datefmt=

调用方法:

import logging
import logging.config as config

config.fileConfig("test2/logging.conf")
logger1 = logging.getLogger('root')
logger1.debug("asdasd")

此外我们还可以用son格式的文件来配置logging……..这个就不讲了。。。(^下班要回家了^)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值