2013-05-24 16 views
9

Chcę zalogować stdout & stderr do plików dziennika, i to jest to, co próbowałem.Jak dodać stdout i stderr do pliku rejestratora w kolbie

app = Flask(__name__) 
app.logger.setLevel(logging.INFO) # use the native logger of flask 
app.logger.disabled = False 
handler = logging.handlers.RotatingFileHandler(
    SYSTEM_LOG_FILENAME, 
    'a', 
    maxBytes=1024 * 1024 * 100, 
    backupCount=20 
    ) 

formatter = logging.Formatter(\ 
    "%(asctime)s - %(levelname)s - %(name)s: \t%(message)s") 
handler.setFormatter(formatter) 
app.logger.addHandler(handler) 

@app.route('/') 
def hello(): 

    return 'Hello World' 
if __name__ == '__main__': 
    app.run()   

Następnie chciałbym zapisać dane wyjściowe konsoli w plikach. , takich jak

* Running on http://127.0.0.1:5000/ 
127.0.0.1 - - [24/May/2013 14:55:14] "GET/HTTP/1.1" 200 - 
127.0.0.1 - - [24/May/2013 14:55:14] "GET /favicon.ico HTTP/1.1" 404 - 

co mogę zrobić?

+0

Co robi twój kod? – Blender

+0

Właściwie to nic tu nie robię, ale próbowałem zalogować stdout i stderr do plików. A także, aby zalogować informacje o debugowaniu i błędzie do plików – Kimmi

+0

Zmień "logging.INFO" na "logging.DEBUG". To powinno ci również dostarczyć wiadomości do debugowania. – Blender

Odpowiedz

15

Komunikaty logowania można wymienić nie pochodzą z rejestratorem kolby, The come fromwerkzeug „s logger, co oznacza, że ​​trzeba także dodać obsługi do tej instancji rejestratora, aby to działało, np:

log = logging.getLogger('werkzeug') 
log.setLevel(logging.INFO) 
log.addHandler(handler) 

Jeśli spojrzysz na to, jak werkzeug inicjuje rejestrator, zobaczysz, że dodaje on domyślną procedurę obsługi tylko wtedy, gdy rejestrowanie nie zostało jeszcze skonfigurowane. Oznacza to, że jeśli ustawisz go przed wekzeug, to nie użyje domyślnego StreamHandler, ale program obsługi, który dostarczysz.

+0

Proszę podać bardziej szczegółowe informacje, to znaczy, powinienem również dodać "program obsługi" do programu rejestrującego werkzeug lub powinienem utworzyć nowy program rejestrujący. – Kimmi

+0

Próbowałem go rozjaśnić. – mata

+0

Wspaniale, o to mi chodzi, dzięki. – Kimmi

Powiązane problemy