Вход в стандартный вывод в Python

Muhammad Maisam Abbas 30 Январь 2023 12 Июль 2021
  1. Войдите в stdout с помощью функции logging.basicConfig() в Python
  2. Войдите в stdout с помощью функции logging.StreamHandler() в Python
Вход в стандартный вывод в Python

В этом руководстве будут представлены методы записи журналов в файл и стандартный вывод в Python.

Войдите в stdout с помощью функции logging.basicConfig() в Python

Если мы хотим распечатать наши журналы в окне консоли и записать журналы внутри файла, мы можем использовать функцию logging.basicConfig() для этого процесса. Функция logging.basicConfig() настраивает некоторые основные параметры для ведения журнала в Python. Мы можем использовать параметр stream этой функции, чтобы указать, что мы также хотим, чтобы этот журнал печатался в окне консоли. Остальная часть конфигурации остается такой же, как запись журнала в файл с помощью функции logging.basicConfig(). Следующий код демонстрирует, как мы можем писать журналы в окно консоли.

import logging
import sys

#Creating and Configuring Logger

Log_Format = "%(levelname)s %(asctime)s - %(message)s"

logging.basicConfig(filename = "logfile.log",
                    stream = sys.stdout, 
                    filemode = "w",
                    format = Log_Format, 
                    level = logging.ERROR)

logger = logging.getLogger()

#Testing our Logger

logger.error("Our First Error Message")

Выход:

2021-06-13 05:15:24,093 - root - ERROR - Our First Error Message

Войдите в stdout с помощью функции logging.StreamHandler() в Python

Мы также можем использовать функцию logging.StreamHandler() для записи логов в окно консоли в Python. Передав sys.stdout функции logging.StreamHandler(), мы можем создать обработчик потока, который может выводить сообщение журнала в окно консоли. Затем мы можем добавить этот обработчик потока к нашему объекту регистратора с помощью функции addHandler(). Следующий фрагмент кода показывает нам, как мы можем выводить сообщения журнала в окно консоли с помощью функции logging.StreamHandler().

import logging
import sys

logger = logging.getLogger()
fileHandler = logging.FileHandler("logfile.log")
streamHandler = logging.StreamHandler(sys.stdout)
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
streamHandler.setFormatter(formatter)
fileHandler.setFormatter(formatter)
logger.addHandler(streamHandler)
logger.addHandler(fileHandler)
logger.error("This is the first error")

Выход:

2021-06-13 05:03:37,510 - root - ERROR - This is the first error

Мы написали сообщение журнала This is the first error в файл logfile.log и окно консоли с функциями logging.FileHandler() и logging.StreamHandler() в приведенном выше коде. Сначала мы создали объект логгера, который будем использовать для записи логов с помощью функции logging.getLogger(). Затем мы создали обработчик файла fileHandler и присвоили ему logging.FileHandler('logfile.log').

После этого мы создали обработчик потока streamHandler и присвоили ему logging.StreamHandler(sys.stdout). После этого мы создали средство форматирования для форматирования нашего вывода с помощью функции logging.Formatter() и установили средство форматирования для fileHandler и streamHandler с помощью функции setFormatter(). Следуя предыдущему шагу, мы добавили оба новых обработчика к нашему объекту логгера с помощью функции addHandler(). В конце концов, мы записали сообщение об ошибке в наш файл и окно консоли с помощью logger.error('This is the first error').

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

Сопутствующая статья - Python Logging