python - 使用 Watchtower 进行 Python 快速 API 日志记录
问题描述
我编写了下面的代码来使用瞭望塔将日志写入 cloudwatch。
import os
import sys
import time
import boto3
import watchtower
import logging.handlers
from scripts.config import app_configurations
def fast_logging():
try:
boto3_session = boto3.session.Session()
LOG_GROUP = "Fast-Logging"
log_level = DEBUG
stream_name = os.path.join("fast_logging"+ "_" + time.strftime("%Y%m%d") + '.log')
logger = logging.getLogger("Fast-Logger")
logger.setLevel(log_level)
formatter = logging.Formatter('%(name)s - %(levelname)s - %(filename)s - %(module)s: %(funcName)s: '
'%(lineno)d - %(message)s')
log_handler = watchtower.CloudWatchLogHandler(log_group=LOG_GROUP, boto3_session=boto3_session,
stream_name=stream_name)
log_handler.setFormatter(formatter)
logger.addHandler(log_handler)
return logger
except Exception as e:
raise e
logger = fast_logging()
上面的代码适用于普通的 python 代码,但无法将日志转储到 cloudwatch 流中以获取 Fast API 服务中的日志。
解决方案
推荐阅读
- python - 无效参数:在 TensorFlow 中调用 model.fit 时,indices[74,7] = 3298 不在第二个 Epoch 的 [0, 1827) 中
- python - Heroku 在私有仓库导入更改时自动部署
- php - 当我的网站有 php 重定向时,为什么我的网站没有出现在谷歌搜索中?
- python - 使用 Selenium 和 Beautiful Soup 进行网页抓取 - 转换为 CSV 文件
- javascript - 为什么我的功能在单击按钮时不起作用?
- html - RMarkdown HTML 输出 - 不同浏览器中的分辨率很差?
- ms-access-2007 - Access 中查询中多个条件的条件求和
- google-sheets - 继续过滤公式到另一列
- blazor - 似乎无法在 finally 块中刷新 Blazor 页面
- javascript - 如何将子行添加到数据表中的子行