반응형
설정이 다른 두 파일에 로깅
저는 이미 모든 모듈의 모든 메시지가 단일 파일에 저장되는 기본 로깅 구성을 사용하고 있습니다.하지만 지금은 좀 더 복잡한 솔루션이 필요합니다.
- 두 개의 파일: 첫 번째 파일은 동일하게 유지됩니다.
- 두 번째 파일에는 사용자 지정 형식이 있어야 합니다.
모듈에 대한 문서를 읽고 있지만, 현재로서는 매우 복잡합니다.로거, 핸들러...
간단히 말해서,
Python 3에서 두 개의 파일에 기록하는 방법, 즉:
import logging
# ...
logging.file1.info('Write this to file 1')
logging.file2.info('Write this to file 2')
다음과 같은 작업을 수행할 수 있습니다.
import logging
formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s')
def setup_logger(name, log_file, level=logging.INFO):
"""To setup as many loggers as you want"""
handler = logging.FileHandler(log_file)
handler.setFormatter(formatter)
logger = logging.getLogger(name)
logger.setLevel(level)
logger.addHandler(handler)
return logger
# first file logger
logger = setup_logger('first_logger', 'first_logfile.log')
logger.info('This is just info message')
# second file logger
super_logger = setup_logger('second_logger', 'second_logfile.log')
super_logger.error('This is an error message')
def another_method():
# using logger defined above also works here
logger.info('Inside method')
def setup_logger(logger_name, log_file, level=logging.INFO):
l = logging.getLogger(logger_name)
formatter = logging.Formatter('%(message)s')
fileHandler = logging.FileHandler(log_file, mode='w')
fileHandler.setFormatter(formatter)
streamHandler = logging.StreamHandler()
streamHandler.setFormatter(formatter)
l.setLevel(level)
l.addHandler(fileHandler)
l.addHandler(streamHandler)
setup_logger('log1', txtName+"txt")
setup_logger('log2', txtName+"small.txt")
logger_1 = logging.getLogger('log1')
logger_2 = logging.getLogger('log2')
logger_1.info('111messasage 1')
logger_2.info('222ersaror foo')
언급URL : https://stackoverflow.com/questions/11232230/logging-to-two-files-with-different-settings
반응형
'programing' 카테고리의 다른 글
Spring MongoDB 쿼리 정렬 (0) | 2023.05.18 |
---|---|
iPhone 응용 프로그램에서 메일을 보내는 방법 (0) | 2023.05.18 |
Bash 명령줄 및 입력 제한 (0) | 2023.05.18 |
코드 파일 대 코드 이면 (0) | 2023.05.18 |
날짜 시간.yyyy-dd-MM 형식의 날짜로 구문 분석을 시도합니다. (0) | 2023.05.18 |