一组有用的日志工具
项目描述
logging_extras
Python 3的一组有用日志工具。
安装
此库中的大多数工具不需要额外的依赖项。要使用基本功能安装库,请使用以下命令。
pip install logging-extras
要使用 MQTT* 类,请使用以下命令安装库。
pip install logging-extras[mqtt]
工具
- MQTThandler- 将日志发布到MQTT代理的日志处理器。
- RelativeTimeFilter- 向日志记录添加相对时间的日志过滤器。
- DiffTimeFilter- 向日志记录添加时间差的日志过滤器。
- TieredFormatter- 允许根据日志级别进行不同格式的日志格式化器。
- log_function_call- 记录函数调用参数和返回值的装饰器。
即将到来的工具
- MQTTSubscriber- 订阅MQTT代理并记录消息的日志监听器。
示例
MQTThandler
import logging
from paho.mqtt.client import Client
from logger_extras import MQTTConfig, MQTThandler
handler = MQTThandler(
    host="localhost",
    topic="logs",
    append_logger_name=True,
)
handler.setFormatter(logging.Formatter("%(levelname)s - %(message)s)"))
logger = logging.getLogger(__name__)
logger.addHandler(handler)
logger.setLevel(logging.INFO)
logger.info("Hello World!")
# This will publish the following message to the MQTT broker on the topic "logs/__main__":
# {
#   "timestamp": 1690226241.740354,
#   "message": "INFO - Hello World!",
#   "raw_message": "Hello World!",
#   "level": "INFO", "name": "__main__"
# }
RelativeTimeFilter
import logging
from time import sleep
from logger_extras import RelativeTimeFilter
handler = logging.StreamHandler()
relative_time_filter = RelativeTimeFilter()
handler.addFilter(relative_time_filter)
handler.setFormatter(logging.Formatter("%(reltime).3f - %(message)s"))
logger = logging.getLogger(__name__)
logger.addHandler(handler)
logger.setLevel(logging.INFO)
logger.info("Hello World!")
sleep(2)
logger.info("Hello World!")
relative_time_filter.reset_time_reference()
sleep(1)
logger.info("Hello World!")
# This will log the following:
# 0:00:00 - Hello World!
# 0:00:02 - Hello World!
# 0:00:01 - Hello World!
DiffTimeFilter
import logging
from time import sleep
from logger_extras import DiffTimeFilter
handler = logging.StreamHandler()
handler.addFilter(DiffTimeFilter())
handler.setFormatter(logging.Formatter("%(difftime).3f - %(message)s"))
logger = logging.getLogger(__name__)
logger.addHandler(handler)
logger.setLevel(logging.INFO)
logger.info("Hello World!")
sleep(2)
logger.info("Hello World!")
sleep(1)
logger.info("Hello World!")
# This will log the following:
# 0:00:00 - Hello World!
# 0:00:02 - Hello World!
# 0:00:01 - Hello World!
TieredFormatter
import logging
from logger_extras import TieredFormatter
handler = logging.StreamHandler()
handler.setFormatter(
    TieredFormatter(
        fmt="%(levelname)s - %(message)s",
        level_fmts={
            logging.DEBUG: "%(levelname)s - %(funcName)s:%(lineno)d - %(message)s",
            logging.INFO: "%(message)s",
        },
        datefmt=None,
        style="%",
        validate=True,
    )
)
logger = logging.getLogger(__name__)
logger.addHandler(handler)
logger.setLevel(logging.INFO)
logger.debug("Hello World!")
logger.info("Hello World!")
logger.warning("Hello World!")
logger.error("Hello World!")
logger.critical("Hello World!")
# This will log the following:
# DEBUG - __main__:19 - Hello World!
# Hello World!
# WARNING - Hello World!
# ERROR - Hello World!
# CRITICAL - Hello World!
log_function_call
from logger_extras import log_function_call
@log_function_call(level=logging.INFO)
def add(a, b):
    return a + b
_ = add(1, 2)
# This will log the following:
# 2021-08-03 12:00:00,000 - INFO - Calling __main__.add(a=1, b=2)
# 2021-08-03 12:00:00,000 - INFO - '__main__.add' returned 3
          项目详情
    
       关闭
    
      
        
    
    
  
logger_extras-0.4.1.tar.gz的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 7e2a181b8ee05e66e7a5d0a7b6941daf5fe1d5094cdfd51041be17e5943f26b6 | |
| MD5 | c5ea777ef914a39586fd324926ddd82a | |
| BLAKE2b-256 | 98d478027443a33fcccaf23b0893902125d9c485e9f10dfd040cf73aa1bdc8e2 | 
    
       关闭
    
      
        
    
    
  
logger_extras-0.4.1-py3-none-any.whl的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | ad3b7e89dc31923f7c8cde25bf479c7d8b8119135fe1399378b9f727015c4b21 | |
| MD5 | 3e386ee625bbe2a88341d9cd39dc9656 | |
| BLAKE2b-256 | 97884a736b332f73ebea8896d8e55ba0728b60b6d5f28a98a1c55a0105c4b69d |