Почему вы должны использовать 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. Это очень мощный инструмент, и я могу только предложить вам попробовать его в своем следующем проекте! Надеюсь, вам понравилось :)!

Ресурсы