我有一个正在使用azure.storage.blob python模块的应用程序。
很明显,当我执行它时,该模块会将其日志数据转储到我不想要的记录器中,因为它很大,并且我自己的应用程序信息在它们之间丢失了。
是否可以从azure.storage.blob python模块中删除记录器?
日志示例:
INFO:azure.storage.common.storageclient:Client-Request-ID = d5afebc0-aa84-11e8-be16-000d3ae070ae 寄出要求:Method = PUT, 路径= / marketingcloud-raw-events / 2018/8/27 / bounce.csv, Query = {'timeout':None},Headers = {'Content-Length':'38176', 'x-ms-blob-type':'BlockBlob','x-ms-version':'2018-03-28', 'x-ms-lease-id':无,'x-ms-client-request-id': 'd5afebc0-aa84-11e8-be16-000d3ae070ae','如果匹配':无, 'If-Modified-Since':无,'If-None-Match':无,'User-Agent': 'Azure-Storage / 1.3.0-1.3.1(Python CPython 2.7.15; Linux 4.15.0-1021-azure)'
答案 0 :(得分:1)
正如Thomas在评论中提到的,您可以发现code日志数据封装在azure.storage.blob
python sdk中。据我所知,没有这样的开关可以关闭此日志记录机制。
1。您可以自己封装SDK,并摆脱这些冗余日志。
2。或者,您也可以尝试在应用程序日志中添加特殊标签,并过滤掉多余的其他日志数据。
3。您可以提交feedback以使天蓝色,以使日志数据为可选。
希望它对您有帮助。
答案 1 :(得分:1)
我遇到了同样的问题,即azure blob API正在向日志流发送垃圾邮件。
构建BlobClient
时,您还可以传递自定义记录器,您可以根据需要对其进行控制。
logger = logging.getLogger("logger_name")
logger.disabled = True
my_blob_client = BlobClient.from_connection_string("azure blob connection string", container_name="container", blob_name="blob", logger=logger)
答案 2 :(得分:0)
这实际上很容易做到。您可以调整任何记录器。
只需在程序开始时执行此操作,即可将详细信息从INFO切换为WARNING或您喜欢的任何内容。
logging.getLogger("azure.storage.common.storageclient").setLevel(logging.WARNING)
答案 3 :(得分:0)
有些消息与 http 调用有关。还可以尝试以下操作:
logger=logging.getLogger('azure.core.pipeline.policies.http_logging_policy')
logger.setLevel(logging.WARNING)