Databricks BlobStorageRotatingFileHandler日志到Azure Blob容器中的单个



我使用BlobStorageRotatingFileHandler从databricks写入日志到Azure blob容器。我的代码有3个日志语句,我希望所有3被写入到一个文件,但每个语句被写入blob容器中的一个单独的文件。如何在一个文件中获得所有日志语句?

import logging
from azure_storage_logging.handlers import BlobStorageRotatingFileHandler
log = logging.getLogger('service_logger')
log.setLevel(logging.DEBUG)
azure_blob_handler = BlobStorageRotatingFileHandler(filename = "name.csv",account_name="xyz",account_key="&&&",maxBytes=5000,container="abc")
azure_blob_handler.setLevel(logging.DEBUG)
log.addHandler(azure_blob_handler)
log.info("Start processing file....")
log.info("Processsed file successfully")
log.info("End file successfully")

根据本文档,RotatingFileHandler在日志内容未达到maxBytes时不上传日志,超过maxBytes时继续上传多个文件。

当这个文件被填满时,它被关闭并重命名为app.log。1、如果文件为app.log。1, app.log。2,等。

您面临此问题的另一个原因是blob的文件名以某种方式附加了时间戳(即日志上传的时间)。

您可以尝试的一个解决方案是,而不是使用BlobStorageRotatingFileHandler,您可以尝试使用TableStorageHandler,其中结果以以下格式显示。

tbody> <<tr>
PartitionKey RowKey 时间戳 消息
XXXXXXXXXXXXXXYYYY-MM-DDYYYY-MM-DD
XXXXXXXXXXXXXXYYYY-MM-DDYYYY-MM-DD
XXXXXXXXXXXXXXYYYY-MM-DDYYYY-MM-DD

相关内容

  • 没有找到相关文章

最新更新