Python에서 stdout에 로깅

Muhammad Maisam Abbas 2023년1월30일
  1. Python에서logging.basicConfig()함수를 사용하여stdout에 로그인합니다
  2. Python에서logging.StreamHandler()함수를 사용하여stdout에 로그인합니다
Python에서 stdout에 로깅

이 자습서에서는 Python에서 파일 및 stdout에 로그를 작성하는 방법을 소개합니다.

Python에서logging.basicConfig()함수를 사용하여stdout에 로그인합니다

로그를 콘솔 창에 인쇄하고 파일에 로그를 작성하려면이 프로세스에 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

Python에서logging.StreamHandler()함수를 사용하여stdout에 로그인합니다

또한logging.StreamHandler()함수를 사용하여 Python의 콘솔 창에 로그를 작성할 수 있습니다. sys.stdoutlogging.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

위의 코드에서logfile.loglogging.FileHandler()logging.StreamHandler()함수를 사용하여 콘솔 창에This is the first error로그 메시지를 작성했습니다. 먼저logging.getLogger()함수로 로그를 작성하는 데 사용할 로거 객체를 생성했습니다. 그런 다음 파일 핸들러fileHandler를 생성하고 여기에logging.FileHandler('logfile.log')를 할당했습니다.

그 후 스트림 핸들러streamHandler를 생성하고logging.StreamHandler(sys.stdout)를 할당했습니다. 그 후logging.Formatter()함수로 출력을 형식화하는 포맷터를 만들고setFormatter()함수로fileHandlerstreamHandler모두에 대한 포맷터를 설정했습니다. 이전 단계에 이어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