Логирование в Python и Django

Поділитися
Вставка
  • Опубліковано 6 чер 2024
  • Мой курс «Хардкорная веб-разработка» - course.to.digital
    Книжный клуб Ботаним!, где мы читаем хорошие ИТ-книги: botanim.to.digital/
    Telegram: t0digital.t.me
    Сказать спасибо за это видео можно здесь - boosty.to/digitalize.team
    Финальное видео в серии материалов о работе с исключениями в Python на примере Django. Поговорим о том, что такое логирование, для чего оно, как оно настраивается и как сделать его гибким.
    0:00 О чем пойдёт речь
    0:30 Для чего нужно логирование?
    3:27 Логирование VS print
    4:09 Уровни логирования
    5:58 На чём строится логирование в Python/Django
    6:20 Loggers
    8:45 Handlers
    9:10 Formatters
    9:37 Filters
    10:02 Смотрим на примере
    18:27 Рекомендации
    Всё о работе с исключениями в Python - • Всё об исключениях и р...
    Обработка исключений в Django - • Обработка и отслеживан...
    /****************** about ******************/
    Меня зовут Алексей Голобурдин, я программирую с 2004 года и на этом канале делюсь своим опытом. Я основатель и руководитель компаний:
    - Диджитализируй digitalize.team, разрабатываем сложные IT системы для бизнеса;
    - Salesbeat salesbeat.pro, комплексный модуль доставки для интернет магазинов.
    Если у вас есть проект на разработку, пишите нам на hi@digitalize.team.
    С другими предложениями, а также если вам нужна одна или несколько индивидуальных консультаций/уроков по разработке (3000 руб/час), пишите мне на alexey@salesbeat.pro.
    Telegram канал - t.me/t0digital
    ВК - digitalize.team
    RuTube - rutube.ru/channel/24802975/ab...
    Дзен - dzen.ru/id/6235d32cb64df01e6e...

КОМЕНТАРІ • 144

  • @artyom_ss
    @artyom_ss 3 роки тому +21

    Нужно видео про паттерны проектирования использованные в django)

  • @user-je6dz7vz4y
    @user-je6dz7vz4y Рік тому +2

    Спасибо за столь ясную и простую на восприятие подачу информации. Разъяснили все моменты, что недопонял при изучении самим. Который раз убеждаюсь, что ваш канал - один из самых приятных для прослушивания и полезный на тему IT. Всех благ!

  • @MrVolodichev
    @MrVolodichev 3 роки тому +1

    Спасибо! То, что я искал! Продолжайте в том же духе!

  • @DevALine
    @DevALine 3 роки тому +10

    Спасибо за качественный контент. Ваши видео сильно мотивируют развиваться в программировании и все больше погружаться в Python.

    • @t0digital
      @t0digital  3 роки тому +2

      Рад, что полезно!

  • @ExTaaaaaZ1
    @ExTaaaaaZ1 3 роки тому +72

    Алексей, как насчёт стрима с созданием небольшого проекта на Джанго? Очень хочется посмотреть как вы это делаете)

    • @t0digital
      @t0digital  3 роки тому +10

      Возможно. Нет идей, что написать по-быстрому, чтобы за стрим уложиться

    • @wasyaokyn4077
      @wasyaokyn4077 3 роки тому

      Какую нибуть классику типа мини-твиттера. Количество функций - как получится, что можно успеть за какое-то разумное время.

    • @forward672
      @forward672 3 роки тому +2

      @@t0digital Сокращатель ссылок. Либо блог можно

    • @t0digital
      @t0digital  3 роки тому +2

      @@forward672 блог совсем грустно, есть же официальная дока с блогом. Твиттер и туду листы тоже уже грустно)

    • @forward672
      @forward672 3 роки тому +4

      @@t0digital Та что нибудь полезное снимайте, лайки не глядя ставим. Вы очень крутой!

  • @t2elzeth
    @t2elzeth 3 роки тому

    обьясняешь очень классно, в watch later пол видосов твои. с удовольствием смотрю все.

  • @Dobrodei08
    @Dobrodei08 3 роки тому +1

    Крутяк! Большое спасибо!

  • @dimilian4719
    @dimilian4719 3 роки тому

    Спасибо, очередная годнота! Отличная дикция и подход!

  • @sorochinssky
    @sorochinssky 3 роки тому +1

    Каждое видео в яблочко, вы у меня первый в рекомендациях! Работаю в строительной компании, постоянно применяю что вы говорите.
    Я один программист, до меня у них собственных it сервисов не было)

    • @t0digital
      @t0digital  3 роки тому

      Отличное место, чтобы набраться опыта!

  • @user-fs9gp6oz8x
    @user-fs9gp6oz8x 3 роки тому

    Отличное видео! Спасибо, что объясняете все доступным и понятным языком)

    • @t0digital
      @t0digital  3 роки тому +1

      Рад, что полезно, спасибо!

  • @cs_dequeue
    @cs_dequeue 2 роки тому

    Супер! Спасибо за полезное видео. Всегда, когда сомневаюсь, а является ли это бест практис или нет, смотрю ваши видосы, учитывая что вы практик, я уверенно юзаю вещи, так как вы показываете(естесственно дальше изучая самостоятельно, что то может чуть по другому, но крепкую базу часто беру от ваших видео)🙂

  • @user-lg6dt3jf1j
    @user-lg6dt3jf1j 3 роки тому +1

    Супер! Очень понятно и полезно! Алексей, запили пожалуйста видос про кэширование в Джанго. Использование редис и вот это все.

  • @79fz270704
    @79fz270704 3 роки тому +14

    Логирование SQL запросов в консоль
    LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
    'console': {
    'class': 'logging.StreamHandler',
    },
    },
    'loggers': {
    'django.db.backends': {
    'level': 'DEBUG',
    'handlers': ['console'],
    },
    },
    }

  • @MadMike93
    @MadMike93 3 роки тому +3

    Спасибо)) теперь основы стали ясны))) а то когда пытался сам разобраться, то было всё как-то запутанно и ничего понять не мог и всё время откладывал это на потом)))
    Погнал документацию читать)))

    • @t0digital
      @t0digital  3 роки тому +2

      Да, логинг постоянно откладывается на потом, такое часто вижу:)

  • @user-ku4iu3ed9n
    @user-ku4iu3ed9n 3 роки тому

    Ура,спасибо,жду с надежной про кеширование))))

  • @kiril9ndi9
    @kiril9ndi9 3 роки тому +2

    Ёхо-хо...супер, спасибо!!! Очень нужная тема!

  • @artydevco
    @artydevco 3 роки тому

    Спасибо за информацию по логгированию, самое время переписать свои костыли :)

  • @AlexGott
    @AlexGott 3 роки тому

    Шпасиба, круто, особенно идея с логированием sql запросов, побегу тестить=)

  • @alexanderpastuhanov174
    @alexanderpastuhanov174 3 роки тому

    Спасибо! Очень полезно!

  • @79fz270704
    @79fz270704 3 роки тому +3

    Больше, больше таких классных видео!

    • @t0digital
      @t0digital  3 роки тому

      Спасибо! Тут уже пишут, что передоз, слишком часто:)

    • @79fz270704
      @79fz270704 3 роки тому +3

      @@t0digital отличный темп, как по мне ))

  • @user-di7gx3rc2q
    @user-di7gx3rc2q 3 роки тому +1

    Наконец-то я дождался этого видео)

  • @cherryass99
    @cherryass99 3 роки тому

    Канал - сокровище!

  • @user-ml4qu5fk3u
    @user-ml4qu5fk3u 3 роки тому +2

    новая студия, картинка, звук, контент - кайф)

    • @t0digital
      @t0digital  3 роки тому

      Спасибооо🙏

  • @user-lz3ez3nn4j
    @user-lz3ez3nn4j 3 роки тому

    Спасибо, супер!!!

  • @user-lucky3337
    @user-lucky3337 3 роки тому +1

    Годнота!

  • @zhekapok3570
    @zhekapok3570 3 роки тому +1

    1000 благодарностей!

  • @m33zy40
    @m33zy40 3 роки тому

    Класс, классный контент

  • @bandirom
    @bandirom 3 роки тому +1

    Спасибо! Было бы ещё супер посмотреть, как правильно подключать отправку на емеил, а если точнее - подключать некие функций при возникновении ошибки.
    Тот самый пример - отвалилась БД, как сразу отправить емеил?)
    Спасибо ещё раз)

  • @digital_ninja
    @digital_ninja 3 роки тому

    Алексей, отличное видео, спасибо вам! Не могли ли бы вы ответить на вопрос. Бывают ли ситуации, когда логи стоит писать в проекте сразу? Могут ли такие системы, как сентри, заменить логирование?

    • @t0digital
      @t0digital  3 роки тому +1

      Логирование лучше делать сразу, да. Sentry по отзывам хорошая штука, сделаю по нему видео, думаю

    • @digital_ninja
      @digital_ninja 3 роки тому

      @@t0digital Спасибо огромное, что отвечаете! Вы делаете крутой и полезный контент.

  • @Kirill-rg8vj
    @Kirill-rg8vj 3 роки тому +5

    про rest framework ещё что-нибудь бы хотелось

    • @t0digital
      @t0digital  3 роки тому

      Планирую такой материал, но не уверен, что скоро

  • @user-fx7pt8gd1s
    @user-fx7pt8gd1s 3 роки тому +11

    Я Error использую, когда случилась единичная ошибка ( у пользователя что-нибудь пошло не так), а Critical - когда произошла ошибка, которая приводит к тому, что у всех пользователей что-то не будет работать (отвалилась БД, не читается важный файл)

    • @t0digital
      @t0digital  3 роки тому +2

      Кстати да, отличный подход

    • @dm1g
      @dm1g 3 роки тому

      Близко, но не совсем.

  • @nikolaisalikov1257
    @nikolaisalikov1257 3 роки тому +4

    Самое полезное в работе с логами, когда они перенаправляются (с помощью хэндлеров) куда-нибудь в Graylog+Grafana или ELK. Где настроены дашборды, метрики, уведомления и т.д. Чувствуешь себя в дашборде, как в рубке космического корабля. А работать с (большими) логами в файлах -- это пытка обычно.

    • @t0digital
      @t0digital  3 роки тому +7

      Да, согласен. Как-нибудь может сделаю материал по графане тоже

  • @user-ms2hu5kk5z
    @user-ms2hu5kk5z 3 роки тому

    Спасибо

  • @rinatgumirov
    @rinatgumirov 3 роки тому

    Ещё про кеширование было бы вообще огонь )

  • @silnoezayavlenie4431
    @silnoezayavlenie4431 3 роки тому

    Спасибо! Как насчет небольшого видоса по DRF? Работа со сторонними api в джанго. Первое что пришло в голову - ютуб статистика, берем json, закидываем в бд. Ну и в докер это все завернуть, чтобы совсем все классно

    • @t0digital
      @t0digital  3 роки тому +1

      по DRF планируется материал

  • @ildarminnakhmetov4260
    @ildarminnakhmetov4260 3 роки тому

    Все круто! А как насчет легирования в python ? там я так понимаю formatters, handlers нет ? или как их использовать?

    • @t0digital
      @t0digital  3 роки тому +2

      Это всё есть в самом питоне - docs.python.org/3/library/logging.html

  • @nikitaderyushev7555
    @nikitaderyushev7555 3 роки тому

    Здравствуйте, спасибо за то что вы делаете, планируете ли материал про докер, ci/cd и прочие девопс приколюхи?

    • @t0digital
      @t0digital  3 роки тому +1

      Спасибо🙏 Да, планирую

    • @nikitaderyushev7555
      @nikitaderyushev7555 3 роки тому

      @@t0digital отлично, было бы шикарно если бы рассказали о том как поднять проект в контейнерах вместе с фронтендом и базой и реверс прокси и все это красиво соединить, но тут уже конечно пахнет платным материалом, может стоит включить в ваш курс)

  • @govdamikhaylo4183
    @govdamikhaylo4183 3 роки тому

    Пожалуйста сделайте видос про websocet и каналы в джанге

  • @vanya15369
    @vanya15369 3 роки тому

    Есть ещё такая классная штука как sentry. Ловит исключения, сохраняя весь контекст в момент падения, вплоть до значения переменных. Отображает это все в удобном виде, со статистикой (сколько такая ошибка повторялась, например). Спасибо за видео)

    • @t0digital
      @t0digital  3 роки тому +2

      Спасибо! Да, про sentry планирую тоже записать видео:)

  • @sampearson3752
    @sampearson3752 3 роки тому +1

    как я понимаю если в любой вью функции можно просто написать logger.error() и это будет записано в лог файл даже если там не будет ошибки

  • @EgorDIY39
    @EgorDIY39 2 роки тому

    А есть ли в логгере log rotate настроенный по умолчанию или его надо конфигурировать?

    • @t0digital
      @t0digital  2 роки тому

      Есть. Можете loguru еще посмотреть, более простой (возможно) в настройке

  • @dm1g
    @dm1g 3 роки тому +1

    Error - произошла ошибка, можно продолжить работу (не операцию).
    Critical - продолжать нельзя. Например, в плохо написанной системе отвалилась база.

  • @user-gm2go5fe1g
    @user-gm2go5fe1g 3 роки тому

    вечер добрый, как я понял это тоже самое что тесты? и чем отличается?)

    • @t0digital
      @t0digital  3 роки тому

      логирование это не тесты

  • @AlexeyDFilimonov
    @AlexeyDFilimonov 3 роки тому

    Что думаешь по разделению ошибок Error / critical на уровень операции приложения. То есть критикал - ошибка, которая с большой вероятностью влияет на все приложение целиком, а еррор - ошибка, которая влияет на конкретную сущность из множества (сессия, пользователь)
    Например, предоставление сессионной куки, которая не найдена в хранилище сессий это варнинг, ошибка разбора данных конкретной записи в базе - еррор,
    Ошибка подключения к базе - критикал

  • @savelich909
    @savelich909 3 роки тому

    А когда будет стрим? По курсу

    • @t0digital
      @t0digital  3 роки тому

      Будет оповещение в новостях на канале

  • @vladimirzinovev4607
    @vladimirzinovev4607 3 роки тому +1

    Есть вопрос, а в каком месте во views.py происходит подвязка настроек логгера из settings.py?
    Если я правильно понял из документации нужно в каждом модуле вставлять две строчки:
    logging.config.dictConfig(settings.LOGGING)
    logger = logging.getLogger("__name__") ?

    • @vladimirzinovev4607
      @vladimirzinovev4607 3 роки тому

      И еще вопрос, а чем вы сами пользуетесь loguru или logging? и почему, правильно понимаю что файл настроек в logging одновременно и минус, если он через чур большой и одновременно и плюс, так как настройки логирования для всего проекта находятся в одном месте?

    • @vladimirzinovev4607
      @vladimirzinovev4607 3 роки тому

      Иии еще вопрос) Если мы запускаем сервер непосредственно то в __name__ будет хранится __main__ и тогда нужно добавить в словарь LOGGING 'loggers': '__main__'? Или не нужно запускать сервер непосредственно

  • @user-vm4dq9hs3l
    @user-vm4dq9hs3l 3 роки тому

    Отлично. Очень интересно. Как всегда на высоте. Только нет привета котанам :(

    • @t0digital
      @t0digital  3 роки тому

      Котаны все на месте, это главное:)!

  • @andreymartynov3958
    @andreymartynov3958 3 роки тому

    Алексей привет! Замечательный канал! Проблема: Boosty оплачена 10 июля подписка 2+к, ни раннего доступа, ни телеграмм канала нет.

    • @t0digital
      @t0digital  3 роки тому +1

      Привет! Вот так бусти:( Напишите свой email мне на alexey@salesbeat.pro, давайте писать им в поддержку выяснять. Похоже, надо уходить с бусти, если такие проблемы

    • @andreymartynov3958
      @andreymartynov3958 3 роки тому

      @@t0digital Похоже надо было сойтись звёздам, что без слова Автора ничего хорошего не происходило. Найдена сохранённая страница, через подключение к каналу Telegram. Только что отписался. Если ответят на запрос - расскажу где у них не то с интерфейсом для новых пользователей. Подписку на видео не проверял, ну да я думаю справлюсь. Ответил в Telegram об успехе.

  • @MandarinSC
    @MandarinSC 3 роки тому

    Сделай пожалуйста ролик ,что нужно изучить новичку,чтобы начать зарабатывать на пайтоне или устроиться на работу или на стажировку.

    • @showrun4747
      @showrun4747 9 місяців тому

      это обычно в тексте вакансий написано. можно ещё десяток тестовых собеседований походить, чисто посмотреть что спрашивать будут

  • @Vitaliy-ct2wv
    @Vitaliy-ct2wv 3 роки тому

    ограмющее спасибо!!!! ты спас мою психику!!!!!!!!!!!!!!!!!!!!

    • @t0digital
      @t0digital  3 роки тому

      неожиданный результат:)!

  • @user-yr3wc6oz2i
    @user-yr3wc6oz2i 2 роки тому

    в файле mailings/views.py, переменная __name__ = 'mailings.views', логгер называется mailings, каким образом logging понимает какой логгер вернуть из getLogger(__name__)?

    • @user-jd4rl7im6d
      @user-jd4rl7im6d 2 роки тому

      __name__ это наименование модуля, а не файла

  • @user-nq5jf2og6e
    @user-nq5jf2og6e 3 роки тому

    Ооостааанооовитесь, я не успеваю смотреть видео😄

    • @t0digital
      @t0digital  3 роки тому

      Што поделать, што поделать:)!

  • @Bandera_tut
    @Bandera_tut 3 роки тому

    что скажешь о Sentry?

    • @t0digital
      @t0digital  3 роки тому +1

      Будет отдельное видео по Sentry

  • @gocoding4742
    @gocoding4742 3 роки тому

    Расскажи про деплой Django приложения на продакшн, чтоб все секурно было

    • @t0digital
      @t0digital  3 роки тому

      про деплой есть видео на канале

    • @gocoding4742
      @gocoding4742 3 роки тому

      @@t0digital Извиняйте, не заметил)

  • @user-mo9op9xh6f
    @user-mo9op9xh6f 11 місяців тому

    Алексей! В одном из Ваших роликов была информация, что очередной набор на Ваши платные курсы будет проводиться до конца июня 2023 года. Я спрашивал у Вас, когда конкретно. На этот вопрос Вы ответили, что это зависит от того сколько слушателей всего Вы будете набирать на свой курс. И вот уже подходит конец июня 2023 года. У Вас ситуация прояснилась? Оно мне не к спеху, но я боюсь пропустить набор. Поясните всё подробнее. Тут вылез какой-то абстракный ник в моём комменте. Что это за абракадабра, я не знаю.система сама шифрует, как ей вздумается. Мой ник Алекс Лин.

    • @t0digital
      @t0digital  11 місяців тому

      информация прояснилась - до конца июня точно набора не будет, уже вероятно в июле. Как только курс запустится, будет информация и здесь в ютубе (если канал не удалят по какой-то причине) и в Telegram. Рекомендую вам подписаться в Telegram или в VK, чтобы не пропустить:
      t.me/t0digital
      vk.com/digitalize.team

  • @roppy__1580
    @roppy__1580 3 роки тому +1

    Передозировка хорошего контента! 😂

  • @user-qq1mk6xw7j
    @user-qq1mk6xw7j 2 роки тому

    Уровни логирования на примере котиков:
    Debug - направление: миска. Проверка: миска. Еда присутствует.
    Info - еды в миске осталось 43%
    Warning - открой дверь! Впусти!!1!!!
    Error - тебе отказано в праве помыть меня. Да не полезу я, блин, в ванную!
    Critical - ОГУРЕЦ

  • @andreyberg3859
    @andreyberg3859 3 роки тому

    Великолепно! Вопрос к ведущему, чем вы будете зарабатывать на жизнь при полном отсутствии электричества, ну когда все вырубится и по улицам будут ходить с ножами злые люди?

    • @t0digital
      @t0digital  3 роки тому

      Придётся ходить отбирать ножи у злых людей, а то чо они)

  • @Vitaliy-ct2wv
    @Vitaliy-ct2wv 3 роки тому

    хотелось бы узнать как эти логи в json оформить

    • @t0digital
      @t0digital  3 роки тому +1

      зачем?

    • @Vitaliy-ct2wv
      @Vitaliy-ct2wv 3 роки тому

      @@t0digital подключить их к какой нибудь централизации, Sentry, ELK, пока еще не знаю точно как правильно, но по JSON'у' же проще поиск настроить, подскажи как правильнее и проще плиз

    • @Das.Kleine.Krokodil
      @Das.Kleine.Krokodil 2 роки тому

      docs.python.org/3/howto/logging-cookbook.html
      см Implementing structured logging

  • @bc.export5542
    @bc.export5542 Рік тому

    А если не __name___?

  • @santex85
    @santex85 3 роки тому

    Положить систему профессионально))! Это они могут.

  • @user-mc3jq7qm9u
    @user-mc3jq7qm9u 3 роки тому

    Здравствуйте дорогие друзья?)) А как же котаны?

    • @t0digital
      @t0digital  3 роки тому

      Главное, что все котаны на месте:)!

  • @x-neimi4493
    @x-neimi4493 3 роки тому

    print(111)
    print('func_example !!!')

    • @t0digital
      @t0digital  3 роки тому

      Классика жанра:)

  • @raidenluikang5532
    @raidenluikang5532 3 роки тому

    Мне больше понравился твой часы),

    • @t0digital
      @t0digital  3 роки тому

      Спасибо, мне тоже нравятся:) Ракета

  • @microsoft8792
    @microsoft8792 Рік тому

    Включать и выключать print очень легко: "заменить все" print( на #print(
    И наоборот.

    • @t0digital
      @t0digital  Рік тому

      в тысячах мест по всему проекту и засорять этим коммиты, отл идея

    • @microsoft8792
      @microsoft8792 Рік тому

      @@t0digital Моё дело предложить ;)

  • @dmitriyobidin6049
    @dmitriyobidin6049 3 роки тому +1

    Горшочек не вари :)

  • @caesar5122
    @caesar5122 3 роки тому

    Критичные ошибки - это те ошибки, которые кладут программу на лопатки?

    • @t0digital
      @t0digital  3 роки тому +1

      Сложно понять, что такое положить систему на лопатки, error тоже в общем приводит к нерабочему функционалу

  • @some_user1337
    @some_user1337 3 роки тому +1

    А как же котаны(

    • @t0digital
      @t0digital  3 роки тому +1

      Котаны все на месте, это главное:)!

  • @olexisme
    @olexisme 3 роки тому +1

    print великолепный способ логирования и не надо ля-ля

    • @t0digital
      @t0digital  3 роки тому +6

      Похоже пора переименовать канал в «Ля-ля о разработке»!

  • @archieruin6875
    @archieruin6875 3 роки тому

    loguru - бест

    • @t0digital
      @t0digital  3 роки тому +2

      забавная штука, спасибо!

    • @nehz_ttv
      @nehz_ttv 3 роки тому +1

      Диджитализируй! Спасибо, что видео сделал по ней, мне приятно, что я посоветовал, и тут бам, видасик вышел😂

  • @user-yp9hb3bg9s
    @user-yp9hb3bg9s 3 роки тому

    астановитесь хватит контента слишком часто

    • @t0digital
      @t0digital  3 роки тому +5

      Нельзя вот так вот взять и перестать пилить видосы!

    • @vladislavbychkov302
      @vladislavbychkov302 3 роки тому

      @@t0digital Слишком много выходит контента. Я не успеваю посмотреть даже