당신이 추측하고 소스 파일 /usr/local/google_appengine/google/appengine/tools/dev_appserver.py
연구를 통해 확인할 수 있듯이 로그는 디스크에 쓰여지지 않습니다 (cStringIO.StringIO
인스턴스는 메모리에 유지하는 데 사용됩니다. 나머지 코드 은 "파일과 유사한 객체에 쓰기"입니다).
내가 dev_appserver
를 가져 자신의 애플리케이션 서버 스크립트를 쓰는 것이 좋습니다 어떤 것은 dev_appserver.ApplicationLoggingHandler
을 하위 클래스, 그냥 무시 방법 중 하나 : 당신은이 클래스를 확인해야합니다
from google.appengine.tools import dev_appserver
class MyHandler(dev_appserver.ApplicationLoggingHandler):
def __init__(self, *a, **k):
dev_appserver.ApplicationLoggingHandler.__init__(self, *a, **k)
self.thefile = open('/tmp/mylog.txt', 'w')
def emit(self, record):
dev_appserver.ApplicationLoggingHandler(self, record)
self.thefile.write(str(record) + '\n')
self.thefile.flush()
가 대신 사용됩니다 표준 하나, 예. 디스패처를 하위 클래스 화하거나 종속성 주입 기능을 사용하도록 보장합니다. (dev_appserver_main.py
당신이 더 나은 제어 할 수 있습니다, 나는 생각한다).
필자는이 사용자 지정 방법이 훨씬 더 성가신다고 생각합니다. (파일을 작성한 후 원하는대로 다른 방식으로 표시하거나 나중에 표시하도록하는 것이 정상입니다. 보조 스크립트)를 사용하기 때문에 앱 엔진의 추적기에 기능 요청을 넣는 것이 좋습니다. dev_appserver.py
은 지정된 경우 디스크에 로그를 쓸 경로를 지정하는 하나 이상의 플래그를 허용해야합니다.
솔직히 말해서이 기능이 필요한 경우 나 자신은 더러운 방식으로 처리합니다. .py
파일 (및 관련 내용 _main.py
)을 수정하여 해당 플래그와 그 용도를 추가하십시오. 그것은 방금 설명한 "정식"방식보다 훨씬 쉬운 12 행이어야합니다. 물론 은입니다. 새 SDK가있을 때마다 다시 패치를 적용해야하기 때문에 ... 도은 GAE의 추적기에 패치를 제안해야하는 이유입니다. 기능 요구의 나는 곧 허용됩니다 희망 제안 -)
을이 일을하는 것은 (런처를 통해이 아닌) 어쨌든 스크립트를 직접 실행할 수를 필요로하기 때문에, 당신은 단지 "실행할 수 <...> dev_appserver.py | 티 로그 파일 " –