@Venda_98

Как добавить extra data в логи?

Настраиваю логирование для проекта на основе модуля logging.
Настройки логирования осуществляю через конфиг-файл logging.json и подключаю через logging.config.dictConfig().
Почему-то при такой настройке не могу добавлять extra data в логи, то есть при вызове, например:
# read configs
with open(log_configs_path, 'r') as f:
    LOGGING_CONFIGS = json.load(f)
# run logger
logging.config.dictConfig(LOGGING_CONFIGS)
logger = logging.getLogger(__name__)

additional_data = {"duration" :  100}
logger.info("Data to log", extra=additional_data )


additional_data просто не записывается в логи. Не могу понять, с чем связано и как настроить добавление
произвольной пользовательской информации в логи.
В дальнейшем хочу иметь возможность эффективно и удобно анализировать логи, поэтому ищу способ гибко вести логирование проекта.

Содержимое logging.json:
{
    "version": 1,
    "disable_existing_loggers": false,
    "formatters": {
        "standard": {
            "class": "logging.Formatter",
            "format": "%(asctime)s::%(levelname)s::%(filename)s::%(message)s",
            "datefmt": "%Y-%m-%d %H:%M:%S"
        }
    },
    "handlers": {
        "console": {
            "class": "logging.StreamHandler",
            "formatter": "standard",
            "level": "INFO",
            "stream": "ext://sys.stdout"
        },
        "file": {
            "class": "logging.handlers.TimedRotatingFileHandler",
            "formatter": "standard",
            "level": "INFO",
            "filename": ".\\logs\\log_data.log",
            "when": "d",
            "interval": 1,
            "backupCount": 30,
            "encoding": "utf-8"
        }
    },
    "loggers": {
        "__main__": {
            "handlers": [
                "console",
                "file"
            ],
            "level": "INFO",
            "propagate": false
        }
    },
    "root": {
        "level": "INFO",
        "handlers": [
            "file"
        ]
    }
}
  • Вопрос задан
  • 43 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы