Comments 16
(Примечание: в статье можно вставить реальный скриншот)После публикации вы получите $0.15 на ваш счёт от OpenAI. Не забудьте удалить последний абзац перед публикацией.
В мемориз своей нейронки. Особенно важно значение переменных.
Понравилось, буду использовать.
Но читая статью всё ждал когда же будет пример выноса настройки логгирования через конфиг-файл. Ведь в продакшн мы не будем перекомпилировать приложение из исходников только чтобы поменять уровень логгирования или расположение логов!
Нашёл, что для этого есть модуль loguru-config, изучу сам.
Делал подобное для Raspberry Pico: https://github.com/PopovGP/picodebug
Мигает лампочками, ротирует файлы автоматически
нехорошие три строчки настройки стандартного логгера превратились в двадцать хороших строчек настройки логгера внешнего
А как можно в отдельной функции вызвать логгер. Чтобы логирование в этой функции шло в определенный файл?
Сам спросил, сам решил :))
from loguru._logger import Logger, Core
class Logging(Logger):
core=Core()
exception=None
depth=0
record=False
lazy=False
colors=False
raw=False
capture=True
patchers=[]
extra={}
def __init__(self):
super().__init__(
self.core,
self.exception,
self.depth,
self.record,
self.lazy,
self.colors,
self.raw,
self.capture,
self.patchers,
self.extra
)
Спасибо, интересно.
"Я не настоящий сварщик" (с), пока обходился самописными костылями в текстовый файл.
"те же яйца, только в профиль".... единственно, интересная идея с декоратором (ИМХО, конечно)
Статья вроде неплохая для людей кто пользуется print для отладки так вообще 10/10. Но есть спорные моменты, такие как ругательство на logging за сложную и громоздкую настройку в начале статьи, а позже автор сам создает отдельные модуль для управления логами схожий по громоздкости, так получается зря ругали?
Правило для продакшена: всегда отключайте диагностику.
# НЕ ДЕЛАЙТЕ ТАК В ПРОДАКШЕНЕ
@logger.catch
def process_user_data(user, password):
# ...
# ДЕЛАЙТЕ ТАК В ПРОДАКШЕНЕ
@logger.catch(diagnose=False)
def process_user_data(user, password):
# ...
А есть вариант глобально урегулировать этот параметр, а не менять везде декораторы?
Пять-шесть строк кода только для того, чтобы начать.
Сложна! Надо срочно притащить еще одну зависимость в проект!
Отдельный респект за "задания для закрепления"
Похоже на переизобретение logger'а из twisted
Забудьте про print(): Современное и красивое логирование в Python с помощью Loguru