Django에서 콘솔에 메시지 기록

Vaibhav Vaibhav 2022년4월14일
Django에서 콘솔에 메시지 기록

컴퓨터에 소프트웨어 세트를 설치할 때 종종 로그 파일을 찾거나 해당 응용 프로그램의 콘솔 내에 일부 메시지가 인쇄되는 것을 볼 수 있습니다. 이러한 메시지는 응용 프로그램에서 발생하는 이벤트, 소프트웨어가 완료하는 작업, 발생한 오류, 경고 등에 대한 정보를 제공하는 로그 메시지입니다. 이러한 메시지는 소프트웨어 개발자가 응용 프로그램을 개선하고 사용자가 응용 프로그램이 오류 보고서를 공유하도록 허용하는 경우이를 디버그하는 데 도움이됩니다.

Django 또는 프로젝트를위한 다른 프레임 워크로 작업 할 때 일반적으로 print 문을 사용하여 애플리케이션을 디버그합니다. 인쇄 진술은 대단합니다. 내장되어 있으며 사용하기가 매우 쉽습니다. 그러나 우리가이 목적을위한 패키지 나 라이브러리를 사용하기 시작한다면이 일을 한 단계 더 발전시킬 수 있습니다. 이러한 라이브러리를 사용하여 로그 메시지의 수준을 정의하고 줄 번호 및 타임 스탬프와 같은 추가 정보를 손쉽게 인쇄 할 수 있습니다. 일부 라이브러리에서는 로그 문이나 메시지에 색상을 추가 할 수도 있습니다.

이 기사에서는 Django 프로젝트의 콘솔에 메시지를 기록하는 방법을 배웁니다.

내장 Python 라이브러리logging을 사용하여 메시지 기록

Python에는 유연한 이벤트 로깅 시스템을 구현하는 데 도움이되는 내장 라이브러리logging이 있습니다. 이 기사에서는 모든 것을 다루지 않고 기본 사항과 몇 가지 필수 사항 만 다룹니다.

logging으로 작업 할 때logger를 사용하여 메시지를 콘솔에 기록합니다. 위에서 언급했듯이 로그 메시지에는 로그 메시지의 목적을 나타내는 몇 가지 수준이 있습니다. 이 도서관에는 5 개의 레벨이 있으며 각 레벨에는 선임 번호가 첨부되어 있습니다. 예를 들어,CRITICAL레벨은 50의 가장 높은 선순위를 갖습니다.DEBUG에는 10이 있습니다.INFO,WARNINGERROR는 각각 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.")

기본적으로 로거는debuginfo수준 로그 메시지를 기록하지 않습니다. 이를 활성화하려면 로거의 레벨을 정의해야합니다. 다음 코드는 동일합니다.

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매개 변수는 6 개의 값을 허용 할 수 있습니다.

  • 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.