의 나는 두 개의 모듈에 의존하는 스크립트가 있다고 가정 해 봅시다 Main을 실행하면 Module1.py 및 Module2.py 내에 메서드에 대한 호출이 여러 번 발생합니다. 여러 모듈로 파이썬 로깅을하는 일반적인/표준 방법은 무엇입니까?</p> <ul> <li>Main.py</li> <li>Module1.py</li> <li>Module2.py</li> </ul> <p>만 Main.py이 실행되지만를 :
가 더 일반적이다
...1) Main.py에 대한 로그에 모든 로그?
또는
2) 각 작업의 각각의 모듈에 대한 로그에 모든 로그?
(TL, 당신은 내 질문을 이해한다면 박사는 다음 그렇지 않으면, 여기에 예제에 읽을 필요가 없습니다.) : (매우 단축 코드를 사용하여)
예 :
가사례 # 1에는 하나의 로그 파일 만 있습니다.이 파일을 Main.log라고합시다. 로거 이름 (그것이 비록이 예제에) 하드 코딩되지 않는다는 가정, 그래서 나는 로그 항목의 모든 AnotherMain.log에
Main.py 갈 것이다, 예를 들어 AnotherMain.py을해야합니다
를some_value = Module1.get_value("abc")
some_other_value = Module2.get_value("def")
some_result = some_value + some_other_value
log("main", "some_result evaluated successfully")
Module1.py :
def get_value(key):
...
log("main", "returning value for key from Module1")
Module2.py :
,691,363 (210)def get_value(key):
...
log("main", "returning value for key from Module2")
이 Main.log 읽기 초래 : Main.log, Module1.log, Module2.log :
some_result evaluated successfully
returning value for key from Module1
returning value for key from Module2
사례 # 2 세 가지 로그 파일, 각 모듈에 대한 하나입니다.
Main.py :
some_value = Module1.get_value("abc")
some_other_value = Module2.get_value("def")
some_result = some_value + some_other_value
log("main", "some_result evaluated successfully")
Module1.py :
def get_value(key):
...
log("Module1", "returning value for key")
모듈 2.평가 :
def get_value(key):
...
log("Module2", "returning value for key")
이 한 줄이 해당 모듈 내에서 일어난 것만을 말하는 세 로그, 각 초래할 것이다.
내가 선호하는 것은 아니지만보다 표준적이고 공통적 인 질문이 아닙니다. 일단 내 후계자가 나면 처리하고 유지하는 것이 더 행복 할 것입니다.
'logging' 모듈을 아직 사용하고 있습니까? –
이미 로깅을 사용하고 있다고 언급 했어야합니다. 질문은 내가 각 로거 (각 모듈 당 하나씩) 또는 하나의 로거 (메인 스크립트 용으로 Module1.py와 Module2.py에서 사용)입니다. – CptSupermrkt
그건 ** 전적으로 ** 귀하의 필요에 따라 다릅니다. 대부분의 프로그램은 'logging'출력을 위해 하나의 로그 파일을 사용하지만, 특정 모듈에서 더 자세한 내용이 필요하다고 느끼면 해당 모듈에 대한 포맷터와 로그 수준을 조정하는 것만으로는 충분하지 않으며 다른 모듈에 대한 메시지가 없어지면 모두 별도의 파일을 제공한다는 의미입니다. –