Журнал сообщений в консоли в Django

Журнал сообщений в консоли в Django

Vaibhav Vaibhav Apr-12, 2022 Jun-29, 2021 Django Django Log

Когда мы устанавливаем набор программного обеспечения на нашу машину, мы часто находим файл журнала или видим, что некоторые сообщения печатаются внутри консоли этого приложения. Это сообщения журнала, которые предоставляют информацию о событиях, происходящих в приложении, задачах, которые выполняет программное обеспечение, обнаруженных ошибках, предупреждениях и т. Д. Эти сообщения помогают разработчикам программного обеспечения улучшать свое приложение и отлаживать его, если пользователи разрешают приложению делиться отчетами об ошибках.

При работе с Django или любой другой структурой для проекта мы обычно используем операторы печати для отладки наших приложений. Заявления о печати грандиозны; они встроены и очень просты в использовании. Но мы можем вывести эту вещь на новый уровень, если начнем использовать пакеты или библиотеки, предназначенные для этой цели. Эти библиотеки позволяют нам определять уровни для наших сообщений журнала и легко выводить дополнительную информацию, такую ​​как номера строк и временные метки. Некоторые библиотеки даже позволяют нам добавлять цвета к нашим операторам журнала или сообщениям.

В этой статье мы узнаем, как записывать сообщения в консоль в проектах Django.

Сообщения журнала с использованием встроенной библиотеки Python logging

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

При работе с logging мы используем logger для логирования сообщений в консоль. Как упоминалось выше, сообщения журнала имеют несколько уровней, которые указывают цель сообщения журнала. В этой библиотеке пять таких уровней, и к каждому уровню прикреплен номер стажа. Например, уровень CRITICAL имеет высший приоритет 50. DEBUG имеет 10. INFO, WARNING и ERROR имеют 20, 30 и 40 соответственно.

  • DEBUG - используется для печати сообщений для отладки приложения.
  • INFO - используется для печати общих сообщений, таких как подтверждения, подтверждения и сообщения об успехе.
  • WARNING - используется для сообщения предупреждений, непредвиденных событий, связанных с вводом данных, указаний на некоторые проблемы, которые могут возникнуть в будущем, и т. Д.
  • ERROR - используется для предупреждения о серьезных проблемах, которые, скорее всего, не остановят работу приложения.
  • CRITICAL - используется для предупреждения о критических проблемах, которые могут нанести вред пользовательским данным, раскрыть пользовательские данные, нарушить безопасность, остановить работу какой-либо службы или, возможно, завершить само приложение.

В библиотеке logging есть функции, которые мы можем использовать для регистрации сообщений. Для демонстрации проверьте код ниже:

import logging

logging.debug("Log message goes here.")
logging.info("Log message goes here.")
logging.warning("Log message goes here.")
logging.error("Log message goes here.")
logging.critical("Log message goes here.")

По умолчанию регистратор не регистрирует сообщения журнала уровня debug и info. Чтобы включить их, мы должны определить уровень для регистратора. Следующий код делает то же самое:

import logging

logging.basicConfig(level=logging.NOTSET) # Here
logging.debug("Log message goes here.")
logging.info("Log message goes here.")
logging.warning("Log message goes here.")
logging.error("Log message goes here.")
logging.critical("Log message goes here.")

Если для уровня установлено значение INFO, будут распечатаны только все уровни с номерами трудового стажа, превышающими и равными INFO. Следующая программа изображает этот процесс:

import logging

logging.basicConfig(level=logging.INFO) # Here
logging.debug("Log message goes here.")
logging.info("Log message goes here.")
logging.warning("Log message goes here.")
logging.error("Log message goes here.")
logging.critical("Log message goes here.")

Для определения уровня можно использовать метод basicConfig(). Всего параметр level может принимать шесть значений.

  • logging.DEBUG # 10
  • logging.INFO # 20
  • logging.WARNING #30
  • logging.ERROR # 40
  • logging.CRITICAL # 50
  • logging.NOTSET # 0

Есть еще параметры, которые вы можете настроить; вы можете прочитать о них подробнее здесь.

Чтобы узнать о некоторых других, обратитесь к этому списку:

  • filename - Метод basicConfig() имеет параметр filename, который можно использовать для установки имени файла, в который должны регистрироваться все сообщения. Если указано имя файла, сообщения журнала записываются в этот файл, а не в консоль.
  • filemode - Метод basicConfig() имеет параметр filemode, используемый для определения режима открытия для указанного файла. По умолчанию он установлен на "a", что означает append. Таким образом, каждый раз, когда вы запускаете программу, новые сообщения журнала будут добавляться к старым сообщениям.
  • format - Метод basicConfig() имеет параметр format, который можно использовать для форматирования структуры сообщений журнала. Формат по умолчанию, который выглядит так: <Level>:root:<Message>, будет заменен новым форматом.

Если вы хотите узнать больше об этой библиотеке, обратитесь здесь.

Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.

LinkedIn GitHub