Почему вы должны использовать Logzero в качестве регистратора в ваших проектах по науке о данных
Ведение журнала - это своего рода улучшение для операторов печати Python. Давайте посмотрим, почему и как отличный пакет logzero помогает создавать простые и удобные журналы.
Печать или ведение журнала?
Печать - это первое утверждение, которое каждый узнает, начиная с Python. Это также одно из немногих утверждений, которое отличает Python 2 от Python 3. У питоновцев есть история печати.
print («Привет, мир!»)
Оператор печати очень полезен и позволяет отслеживать информацию во время выполнения кода. Но у него есть один огромный недостаток: когда вы закрываете сеанс python или повторно запускаете ячейку записной книжки, вы теряете всю напечатанную информацию. Даже самые важные. И это еще более верно, когда дело доходит до машинного обучения, где вам часто нужно запускать поиск по сетке или любой итеративный процесс:
- Выбор параметров / печать параметров / запуск эксперимента / печать точности по эпохам
- Наблюдать за результатами / изменить гиперпараметр / повторить эксперимент / удалить предыдущую печатную информацию
Чтобы предотвратить эти потери, вы можете использовать модуль logging
, который является частью стандартной библиотеки python. Основные преимущества использования логгера:
- Сохраните все свои журналы в отдельном файле. Вы можете проанализировать их позже. (Конечно, он по-прежнему выводит информацию на вашу консоль.)
- Выберите уровень ведения журнала для каждой регистрируемой строки:
Debug
,Info
,Warning
илиError
. - Он предоставляет точный час возникновения и строку отчета журнала.
- Легко использовать. Так же просто, как
import logging
иlogging.warning('This is important but not critical').
Это не только делает отслеживание ошибок намного проще и эффективнее, но также позволяет сохранять информацию во времени без потери результатов.
Вот почему вам следует использовать ведение журнала вместо печати. Хорошая новость заключается в том, что существует очень мощный пакет python под названием logzero, который делает ведение журнала python еще более мощным и эффективным.
Сила Logzero
Logzero - это пакет Python, разработанный Крисом Хагером, который предоставляет простой сервис регистрации. Одна из наиболее ценных его функций, созданных поверх модуля регистрации, - окрашивание записанных строк.
Обратите внимание, что он устойчив к проблемам с кодировкой str / bytes, работает со всеми типами кодировок символов и специальных символов.
Установка
Чтобы установить logzero, используйте индекс пакета Python:
pip install logzero
Он совместим как с Python 2, так и с Python 3.
Первый журнал
Теперь регистратор готов к использованию. И очень удобно. Просто замените любой оператор print()
на logger.info()
, и он заработает.
В результате в консоли появляются следующие строки
Для каждой строки вы получите:
- Уровень ведения журнала: D, I, W или E. Он также обозначается цветом линии.
- Дата и время регистрации: ГГМММДД ЧЧ: мм: сс
- Файл журнала: очень полезен при запуске проектов с несколькими файлами Python.
- Регистрируемая информация (конечно!)
Укажите уровень журнала
Если вы не знакомы с ведением журнала, вы можете задаться вопросом, почему в предыдущем примере использовались разные методы ведения журнала. При ведении журнала вы можете указать четыре уровня важности: _11 _, _ 12_, warning
или error.
Эти четыре уровня упорядочены, как указано в списке.
Если иногда вы хотите видеть только важные предупреждения, это возможно благодаря функции set_level
. В начале файла вы решаете, какой уровень журнала вы хотите отслеживать:
- Установка уровня на
debug
приведет к регистрации _17 _, _ 18_,warning
илиerror
информации. - Установка уровня на
info
приведет к регистрации только информацииinfo, warning
иerror
и скроетdebug logs.
- Установка уровня на
warning
приведет к регистрации только информацииwarning
иerror
. - Установка уровня на
error
является наиболее строгим способом продолжения: будет отображаться толькоlogger.errors()
.
Установка уровня журнала на предупреждение
С помощью этого дуэта функций вы можете легко решить, какой уровень информации вы хотите отображать, и увидеть соответствующие строки в консоли.
Ошибки и предупреждения могут использоваться как постоянные журналы, содержащие информацию о запущенном процессе, в то время как информация и отладка могут использоваться для целей отладки. Затем при запуске процесса вы сразу же заметите синюю или зеленую линию, соответствующую ошибке, которую вы отслеживаете в данный момент.
Сохранение журналов
Как упоминалось ранее, одна из сильных сторон логгеров - хранить распечатанную информацию. Это делается с помощью функции logfile
, которая принимает путь к файлу журнала в качестве параметра.
При запуске этого сценария в logfile.log
файл будут записаны две строки. Вот и все. Он хранится. Вы больше никогда не будете задаваться вопросом: «А я пробовал этот набор параметров 🧐?». Хочешь знать? Проверьте свои журналы!
Пользовательские журналы
Также можно изменить формат журнала с помощью функций LogFormatter
и formatter
.
Допустим, мы хотим добавить стрелки между зоной временной метки и содержимым журнала и раскрасить всю строку журнала.
При использовании журналов?
Всегда и везде
Я бы посоветовал вам всегда использовать журналы вместо операторов печати, чтобы везде у вас была информация для отображения. Logzero - очень маленький пакет, у которого нет зависимостей. Что до меня, я устанавливаю его на каждый проект, который начинаю, и я бы сказал, что он изменил мою жизнь.
Например, в моей предыдущей статье, где я объяснял как автоматизировать переводы PowerPoint с помощью Selenium и DeepL, я использовал logzero для отслеживания процесса перевода.
Разве это не понятно и приятно читать?
Заключение
В заключение скажу, что основные преимущества:
- ведение журнала: временное хранение информации. Хранение журналов может быть очень полезно для более масштабного анализа или аудита приложения с помощью таких инструментов, как Elastic Search и Kibana.
- logzero: окраска консоли, которая делает мгновенную отладку намного проще и эффективнее.
Плюс логзеро очень кстати! Теперь вы знаете основные функции входа в Python с помощью logzero. Это очень мощный инструмент, и я могу только предложить вам попробовать его в своем следующем проекте! Надеюсь, вам понравилось :)!
Ресурсы
- Документация по ведению журнала Python: https://docs.python.org/3.8/library/logging.html#
- Документация по Logzero: https://logzero.readthedocs.io/en/latest/