2013-05-24 7 views
9

Desidero registrare lo stderr & per registrare i file e questo è quello che ho provato.Come aggiungere stdout e stderr al file di registrazione nel pallone

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()   

Quindi desidero registrare l'output della console nei file. quali

* 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 - 

cosa posso fare?

+0

Cosa fa il codice? – Blender

+0

In realtà non sta facendo nulla qui, ma stavo cercando di registrare lo stdout e lo stderr nei file. E anche per registrare le informazioni di debug e di errore sui file – Kimmi

+0

Modificare 'logging.INFO' su' logging.DEBUG'. Questo dovrebbe portarti anche i messaggi di debug. – Blender

risposta

15

I messaggi di registrazione di cui parli non provengono da logger di pallone, il come fromwerkzeug s' logger, che significa che è inoltre necessario aggiungere la gestore a tale istanza logger per farlo funzionare, ad esempio:

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

Se si guarda a come werkzeug inizializza il proprio logger, si vedrà che aggiunge un gestore predefinito solo se la registrazione non è già stata impostata. Ciò significa che se lo configuri prima di wekzeug, non utilizzerà il valore predefinito StreamHandler ma il gestore che fornisci.

+0

Si prega di specificare per ulteriori informazioni di dettaglio, vuoi dire che dovrei anche aggiungere il "gestore" al logger di werkzeug o dovrei creare un nuovo logger – Kimmi

+0

Tentativo di renderlo più chiaro. – mata

+0

Fantastico, questo è quello che intendo, grazie. – Kimmi

Problemi correlati