python Greengrass V2生成额外的“标准输出”对数

wmomyfyw  于 2022-12-28  发布在  Python
关注(0)|答案(1)|浏览(90)

bounty将于明天过期。回答此问题可获得+100的声望奖励。user-517752正在寻找规范答案

我将greengrass组件部署到EC2示例中,部署greengrass组件一直在生成日志,这些日志包含了我的python日志。
是什么导致了它周围的“包裹”?我如何才能去除这些包裹。
例如,bold中的日志是原始python日志的 Package ,emphasis 中的日志是由我的python日志格式化程序生成的。

2022-12- 13 T23:59:56.926Z [信息](复印机)com.bolt-data.iot.规则引擎核心:标准输出。[2022年12月13日23:59:56,925][调试][iot-ipc]正在检查redis发布子系统的运行状况(io_thread[140047617824320]:发布子系统的运行状况:连接健康保姆任务:61)。{脚本名称=服务.com. bolt-数据.iot.规则引擎核心。生命周期。运行,服务名称=com. bolt-数据.iot.规则引擎核心,当前状态=正在运行}

下面是我的python日志格式化程序。

formatter = logging.Formatter(
        fmt="[%(asctime)s][%(levelname)-7s][%(name)s] %(message)s (%(threadName)s[%(thread)d]:%(module)s:%(funcName)s:%(lineno)d)"
    )

    # TODO: when we're running in the lambda function, don't stream to stdout
    _handler = logging.StreamHandler(stream=stdout)
    _handler.setLevel(get_level_from_environment())
    _handler.setFormatter(formatter)
8yparm6h

8yparm6h1#

默认情况下,GreengrassNucleus从其管理的进程捕获stdoudstderr流,包括自定义组件。然后,它会输出日志的每一行,并使用您以bold突出显示的前缀和后缀。这是无法更改的。您可以将格式从TEXT切换为JSON,这样可以使计算机更容易解析日志(检查绿草-核心-组件-配置-logging.format

import logging
from logging.handlers import RotatingFileHandler

logger = logging.Logger(__name__)
_handler = RotatingFileHandler("mylog.log")

# additional _handler configuration

logger.addHandler(_handler)

如果要输出仅包含应用程序生成内容的日志,请将日志记录器配置输出更改为文件。可以将文件写入组件的工作文件夹或其他位置,例如/var/log
干杯马西米利亚诺

相关问题