Python 로그 모듈
13861 단어 오토 메 이 션파 이 썬 학습 일기
logging 모듈 은 Python 에 내 장 된 표준 모듈 로 실행 로 그 를 입력 하 는 데 사 용 됩 니 다.출력 로그 의 등급,로그 저장 경로 등 을 설정 할 수 있 습 니 다.
빠 른 사용
# logging
import logging
#
logging.basicConfig(level=logging.DEBUG, format="%(asctime)s - %(name)s - %(levelname)s - %(message)s")
#
logger = logging.getLogger(" V1")
#
# info
logger.info(" info ")
#debug
logger.debug(" debug ")
# warning
logger.warning(" warning ")
기본 사용
로그 출력 콘 솔 이나 파일
import logging
# 1. logger
logger =logging.getLogger("log_file")
# 2. log
logger.setLevel(logging.INFO)
# 3. handler,
fh_stream = logging.StreamHandler() # handler
fh_file = logging.FileHandler("test.log", encoding="utf8") # handler
# 4.
fh_stream.setLevel(logging.WARNING) #
fh_file.setLevel(logging.DEBUG) #
# 5. handler
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
fh_stream.setFormatter(formatter) #
fh_file.setFormatter(formatter) #
# 6. handler
logger.addHandler(fh_stream)
logger.addHandler(fh_file)
# 7.
logger.info(" info ")
logger.debug(" debug ")
logger.warning(" warning ")
logger.setLevel(logging.INFO)
이 warning 으로 설정 되 어 있 기 때문에 info 등급 의 로 그 는 콘 솔fh_stream.setLevel(logging.WARNING)
import logging
import datetime
import os
#
log_l = {
"info": logging.INFO,
"debug": logging.DEBUG,
"warning": logging.WARNING,
"error": logging.ERROR
}
# 1.
class Logger:
# 2. : test.log, logger ,
def __init__(self, log_file, log_name, log_level):
self.logger = logging.getLogger(log_name) # logger
self.logger.setLevel(log_l[log_level]) #
# 3. handler
if not self.logger.handlers: # handler, handler
fh_stream = logging.StreamHandler()
fh_stream.setLevel(log_l[log_level])
formatter = logging.Formatter('%(asctime)s - %(name)s -%(lineno)s - %(levelname)s - %(message)s')
fh_stream.setFormatter(formatter)
self.logger.addHandler(fh_stream)
# 4. handler
fh_file = logging.FileHandler(log_file)
fh_file.setLevel(log_l[log_level])
fh_file.setFormatter(formatter)
self.logger.addHandler(fh_file)
# logs
log_path = os.path.dirname(__file__) #
log_path = log_path + os.path.sep + "logs" # logs
current_data = datetime.datetime.now().strftime("%Y-%m-%d") #
log_file = os.path.join(log_path, current_data + ".log") #
# print(log_file)
#
loglevel = "info"
# log ,
def my_log(log_name=__file__):
return Logger(log_file, log_name, loglevel).logger
if __name__ == '__main__':
log = my_log(" ")
log.info(" info ")
부록
Format 형식 설명
Debug>Info>Warning>Error>Critical
:로 그 를 인쇄 하 는 시간%(asctime)s
:로 거 이름 인쇄%(name)s
:로그 등급 이름 인쇄%(levelname)s
:로그 정보 인쇄%(message)s
:인쇄 로그 등급 의 수치%(levelno)s
:현재 실행 프로그램의 경 로 를 인쇄 하 는 것 은 바로 sys.argv[0]%(pathname)s
:현재 실행 중인 프로그램 이름 인쇄%(filename)s
:로 그 를 인쇄 하 는 현재 함수%(funcName)s
:로 그 를 인쇄 하 는 현재 줄 번호%(lineno)s
:인쇄 스 레 드 ID%(thread)s
:인쇄 스 레 드 이름%(threadName)s
:프로 세 스 ID 인쇄이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
puppet 의 설치 배치 실례puppet 에 대한 설명 은 여기 서 상세 하 게 소개 하지 않 습 니 다. 여 기 는 주로 puppet 의 설치 방식 과 기본 모듈 의 응용 을 소개 합 니 다.다음은 바로 puppet 배치 설 치 를 시작 하 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.