티스토리 뷰

반응형

Stack Overflow에 자주 검색, 등록되는 문제들과 제가 개발 중 찾아 본 문제들 중에서 나중에도 찾아 볼 것 같은 문제들을 정리하고 있습니다.

Stack Overflow에서 가장 먼저 확인하게 되는 가장 높은 점수를 받은 Solution과 현 시점에 도움이 될 수 있는 가장 최근에 업데이트(최소 점수 확보)된 Solution을 각각 정리하였습니다.

 

아래 word cloud를 통해 이번 포스팅의 주요 키워드를 미리 확인하세요.

How to Customize the time format for Python logging?

파이썬 로깅의 시간 형식을 어떻게 사용자 지정합니까?

 문제 내용 

I am new to Python's logging package and plan to use it for my project. I would like to customize the time format to my taste. Here is a short code I copied from a tutorial:

나는 파이썬의 로깅 패키지를 처음 사용하며 프로젝트에 사용할 계획이다. 나는 시간 형식을 내 취향에 맞게 맞춤 제작하고 싶다. 튜토리얼에서 복사한 짧은 코드는 다음과 같습니다.

 

import logging

# create logger
logger = logging.getLogger("logging_tryout2")
logger.setLevel(logging.DEBUG)

# create console handler and set level to debug
ch = logging.StreamHandler()
ch.setLevel(logging.DEBUG)

# create formatter
formatter = logging.Formatter("%(asctime)s;%(levelname)s;%(message)s")

# add formatter to ch
ch.setFormatter(formatter)

# add ch to logger
logger.addHandler(ch)

# "application" code
logger.debug("debug message")
logger.info("info message")
logger.warn("warn message")
logger.error("error message")
logger.critical("critical message")

And here is the output:

결과는 다음과 같습니다.

 

2010-07-10 10:46:28,811;DEBUG;debug message
2010-07-10 10:46:28,812;INFO;info message
2010-07-10 10:46:28,812;WARNING;warn message
2010-07-10 10:46:28,812;ERROR;error message
2010-07-10 10:46:28,813;CRITICAL;critical message

I would like to shorten the time format to just: '2010-07-10 10:46:28', dropping the mili-second suffix. I looked at the Formatter.formatTime, but confused. I appreciate your help to achieve my goal. Thank you.

시간 형식을 '2010-07-10 10:46:28'로 줄여서 밀리초 접미사를 삭제하고 싶습니다. 나는 Formatter.formatTime를 보았이지만 혼동됩니다. 제 목표를 달성할 수 있도록 도와주셔서 감사합니다. 감사해요.

 

 

 

 높은 점수를 받은 Solution 

From the official documentation regarding the Formatter class:

Formatter 클래스에 관한 공식 문서:

 

The constructor takes two optional arguments: a message format string and a date format string.

생성자는 메시지 형식 문자열과 날짜 형식 문자열이라는 두 가지 선택적 인수를 사용합니다.

 

So change

그러니 바꿔라

 

# create formatter
formatter = logging.Formatter("%(asctime)s;%(levelname)s;%(message)s")

to

아래와 같이

 

# create formatter
formatter = logging.Formatter("%(asctime)s;%(levelname)s;%(message)s",
                              "%Y-%m-%d %H:%M:%S")

 

 

 가장 최근 달린 Solution 

To add to the other answers, here are the variable list from Python Documentation.

다른 답변에 추가하기 위해, 여기 파이썬 문서의 변수 목록이 있다.

 

Directive   Meaning Notes

%a  Locale’s abbreviated weekday name.   
%A  Locale’s full weekday name.  
%b  Locale’s abbreviated month name.     
%B  Locale’s full month name.    
%c  Locale’s appropriate date and time representation.   
%d  Day of the month as a decimal number [01,31].    
%H  Hour (24-hour clock) as a decimal number [00,23].    
%I  Hour (12-hour clock) as a decimal number [01,12].    
%j  Day of the year as a decimal number [001,366].   
%m  Month as a decimal number [01,12].   
%M  Minute as a decimal number [00,59].  
%p  Locale’s equivalent of either AM or PM. (1)
%S  Second as a decimal number [00,61]. (2)
%U  Week number of the year (Sunday as the first day of the week) as a decimal number [00,53]. All days in a new year preceding the first Sunday are considered to be in week 0.    (3)
%w  Weekday as a decimal number [0(Sunday),6].   
%W  Week number of the year (Monday as the first day of the week) as a decimal number [00,53]. All days in a new year preceding the first Monday are considered to be in week 0.    (3)
%x  Locale’s appropriate date representation.    
%X  Locale’s appropriate time representation.    
%y  Year without century as a decimal number [00,99].    
%Y  Year with century as a decimal number.   
%z  Time zone offset indicating a positive or negative time difference from UTC/GMT of the form +HHMM or -HHMM, where H represents decimal hour digits and M represents decimal minute digits [-23:59, +23:59].  
%Z  Time zone name (no characters if no time zone exists).   
%%  A literal '%' character.     

 

 

출처 : https://stackoverflow.com/questions/3220284/how-to-customize-the-time-format-for-python-logging

반응형
댓글
공지사항
최근에 올라온 글