Комментарии 13
А чем стандартный логгер не устроил?
У вскода нет remote debugger'а?
Спасибо за интересное решение. Посмотрю.
По поводу pydantic и pika, они нужны для логирования в кликхаус через rabbitmq. Возможно кому то это также пригодится, но об этой возможности я не стал писать, чтобы не перегружать статью. Примеры есть в документации на github.
Андрей, я постараюсь написать помягче, но не факт что у меня получится..
Ваш код ужасен. Я зашел на гитхаб и попробовал посмотреть на исходники.
Мало того что этот проект (просто логгер!) тащит за собой какие-то левые файлы с кликхаусом (?), так еще и ставит библиотеки, которые совсем не нужны для заявленной задачи. Файл с кликхаусом, кстати, работать все равно не будет, поскольку он импортирует библиотеку, которая не ставится.
Возможно кому то это также пригодится, но об этой возможности я не стал писать, чтобы не перегружать статью.
ну это вот уже вообще за гранью добра и зла. А потом оно еще будет тащить десятки мегабайт из, скажем, pandas? Вдруг понадобится кому?
Я даже не буду ничего говорить про сам код. Какие-то assert, куча условий.. И, вдобавок, все тело великой функции "sprint()" спрятано под условием "if DEBUG or broker". Хитро.
Для себя вы можете писать какие угодно велосипеды (и каждый для себя пишет), какого угодно качества. Но если уж вы оформляете это в статью - хотя бы делайте это качественно. Ну и будьте готовы к критике как в этом комментарии, например.
from simple_print import sprint
my_var = 42
sprint(myvar)
Так просто короче и быстрее.
Повторюсь. Я не делал это в противовес чему либо и чужие решения не критикую. Кому то возможно пригодится мое.
Кажется вы лечите симптомы.
Предположим что вы работаете с каким либо классом, в котором к примеру
~3000 строчек. Количество "принтов" увеличивается, и понять с первого
раза какой "принт" к какой переменной относится становится не просто.
Это плохой код, тут не принты нужны а рефакторинг.
Немного кокретики на примере вашей библиотеки. У кода неприлично высокая цикломатическая сложность. Это проблема. Перепишите на сложность не более 10 и тогда проблема с тем, что непонятно откуда идёт печать изчезнет.
кто разрабатывает веб приложения (и не только) на удаленном сервере
Эту жутко неудобно, но иногда приходится. Я решаю эту проблему юнит тестами. При этом подходе практически ничего не надо удалённо дебажить.
Удобный print с номером строки и названием переменной