저장 변경과 설정 파일을 기록 :파이썬은 로깅 : 이제 나는 다음과 같은 설정 로그 파일이 있다고 가정 해 봅시다 위치
[loggers]
keys=root,seeker,event
[handlers]
keys=consoleHandler,seekerFileHandler,eventFileHandler
[formatters]
keys=consoleFormatter,logFormatter
[logger_root]
level=DEBUG
handlers=consoleHandler,seekerFileHandler,eventFileHandler
[logger_seeker]
level=DEBUG
handlers=consoleHandler,seekerFileHandler
qualname=seeker
propagate=0
[logger_event]
level=DEBUG
handlers=consoleHandler,eventFileHandler
qualname=event
propagate=0
[handler_consoleHandler]
class=StreamHandler
level=INFO
formatter=consoleFormatter
args=(sys.stdout,)
[handler_seekerFileHandler]
class=FileHandler
level=DEBUG
formatter=logFormatter
args=('seeker.log','a')
[handler_eventFileHandler]
class=FileHandler
level=DEBUG
formatter=logFormatter
args=('event.log','a')
[formatter_consoleFormatter]
format=%(asctime)s - thread:%(thread)d - %(name)s - %(levelname)s | %(message)s
datefmt=%m/%d/%Y %X
[formatter_logFormatter]
format=%(asctime)s | %(message)s
datefmt=%m/%d/%Y %X
일반적으로 나는 것 :
import logging
from logging.config import fileConfig
from os import getcwd
fileConfig(''.join([getcwd(),'/logging.conf']))
event_logger = logging.getLogger("event")
seeker_logger = logging.getLogger("seeker")
각 로거를 처리합니다. 그러나이 소프트웨어는 Windows와 Linux의 두 가지 별도 플랫폼에서 실행되는 경향이 있으므로 각 플랫폼을 "공통"위치에 저장하면 좋을 것입니다. 어떤 아이디어
from sys import platform
if 'win' in platform:
#alter the save path to this location
if 'linux' in platform:
#alter save path to this location
하지만 난 아무 생각이 어떻게 설정 파일과이를 구현하지해야한다 : 나는 무엇을 찾고 뭔가처럼?
왜,'fileConfig ('logging.conf')'를 사용하지 않을까요? – nneonneo
config 파일을 사용하여 선언적으로 수행 할 수 있다고 생각하지 않습니다. 따라서 각 플랫폼에 대해 가장 유사한 두 개의 구성 파일을 갖고 있으며 플랫폼에 따라로드 할 구성 파일을 선택하거나 파일 처리기 객체를 원숭이 패치합니다 올바른 대상 파일을 설정하기 위해 일반 구성을로드합니다. –
... getcwd는 현재 디렉토리입니다. 실제로 아무런 요점이 없습니다 (추가 안전을 0으로 얻음). – nneonneo