Запись ошибок в azure blob - PullRequest
0 голосов
/ 05 мая 2020

Я пытаюсь регистрировать ошибки в azure blob, но это не создает никакой таблицы в blob. Я просмотрел много документов, а также искал ответ в stackoverflow. Пожалуйста, помогите мне с этим. Спасибо

ниже приведен код

def log ():

import logging
import sys
from azure_storage_logging.handlers import BlobStorageRotatingFileHandler

mystorageaccountname='***'
mystorageaccountkey='***'

_LOGFILE_TMPDIR = mkdtemp()

logger = logging.getLogger('service_logger')
logger.setLevel(logging.DEBUG)
log_formater = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(process)d - %(message)s')
azure_blob_handler = TableStorageHandler(account_name=mystorageaccountname,
                                         account_key=mystorageaccountkey,
                                         protocol='https',
                                         table='logtable',
                                         batchsize=100,
                                         extra_properties=None, 
                                         partition_key_formatter=None, 
                                         row_key_formatter=None, 
                                         is_emulated=False)
logger.addHandler(azure_blob_handler)

logger.warning('warning message')

1 Ответ

0 голосов
/ 06 мая 2020

Согласно указанному вами коду, вы используете TableStorageHandler для хранения журнала. Это поможет нам хранить журнал в Azure хранилище таблиц вместо Azure хранилища BLOB-объектов. Пожалуйста, найдите свои журналы в таблице Azure.

Кроме того, если вы хотите сохранить свой журнал в Azure blob, пожалуйста, обратитесь к следующему коду

import logging
    import sys
    from azure_storage_logging.handlers import BlobStorageRotatingFileHandler

    mystorageaccountname='***'
    mystorageaccountkey='***'

    logger = logging.getLogger('service_logger')
    logger.setLevel(logging.DEBUG)
    log_formater = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(process)d - %(message)s')
    azure_blob_handler = BlobStorageRotatingFileHandler(filename = 'service.log', 
                                                        account_name=mystorageaccountname,
                                                        account_key=mystorageaccountkey,
                                                        maxBytes= 5,
                                                        container='service-log')
    azure_blob_handler.setLevel(logging.INFO)
    azure_blob_handler.setFormatter(log_formater)
    logger.addHandler(azure_blob_handler)

    logger.warning('warning message')

Для получения более подробной информации, см. документ

Обновить

Когда мы используем BlobStorageRotatingFileHandler, журнал не загружается, если содержимое не достигает maxBytes

Мой тестовый код

import logging
import sys
from azure_storage_logging.handlers import BlobStorageRotatingFileHandler

mystorageaccountname='blobstorage0516'
mystorageaccountkey=''

logger = logging.getLogger('service_logger')
log_formater = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(process)d - %(message)s')
azure_blob_handler = BlobStorageRotatingFileHandler(filename = 'service.log', 
                                                        account_name=mystorageaccountname,
                                                        account_key=mystorageaccountkey,
                                                        maxBytes=5,
                                                        container='service-log')
azure_blob_handler.setLevel(logging.INFO)
azure_blob_handler.setFormatter(log_formater)
logger.addHandler(azure_blob_handler)

logger.warning('warning message')

введите описание изображения здесь

...