방금 파이썬 로깅 모듈을 사용하기 시작했으며 이해할 수 없습니다.파이썬 로깅 : 프로세스마다 다른 로깅 대상
1 부분 (단일 프로세스) : 나는 다음과 같은 방식으로 작동하는 스크립트를 쓰고 있어요
이 (가 얼마나 중요하지) 일부 데이터는 계산에 도착. 여기에 나는 다음과 같은 방법으로 로거를 만듭니다 즉
import logging
logging.basicConfig(format='%(asctime)-6s: %(name)s - %(levelname)s - %(message)s')
logger = logging.getLogger('Pipeline')
logger.setLevel(logging.INFO)
logger.warning('Pipeline started')
나는 화면에 로그인합니다.
두 번째 부분 (다중 처리) : 이전에 발견 된 데이터를 분석하기 위해 몇 가지 프로세스 (데이터 분석은 실제로 시간과 CPU를 소비합니다)를 만듭니다.
이제 각 프로세스는 화면에 로깅하지 않고 다른 파일에 기록합니다. 내가 쓴 무엇
입니다 : 내가 가진 무엇
fh = logging.FileHandler('/tmp/'+multiprocessing.current_process().name+'_worker.log')
fmt = logging.Formatter(%(asctime)-6s: %(name)s - %(levelname)s - %(message)s)
fh.setFormatter(fmt)
local_logger = logging.getLogger(multiprocessing.current_process().name+'_worker')
local_logger.addHandler(fh)
local_logger.warning(multiprocessing.current_process().name + ' (worker) Process started')
는 그 다른 파일하지만 화면에도 로그에 대한 각 프로세스 로그!
어떻게 해결할 수 있습니까?
나는 아마도 basicConfig()를 사용하여이 상황에 가장 적합한 선택이 아닐 수도 있다고 덧붙인다. 동료 Jason이 나에게 지적했듯이, 이것은 매우 간단한 로깅 설정을 의미합니다. 좀 더 '정교한'접근 방식을 사용하는 방법을 살펴 보는 것이 좋습니다. 검색을 통해 여러 접근법을 쉽게 찾을 수 있습니다. –