2016-03-30 9 views
1

Wenn ich Kolben 0.9 laufen, habe ich die Protokollierung:Wie entfernt man das "- -" aus der Protokollierung?

127.0.0.1 - - [30/Mar/2016 10:08:38] "GET/HTTP/1.1" 200 - 
  1. Was soll ich tun - - zwischen 127.0.0.1 und [30/Mar/2006 10:08:38] entfernen?

  2. Wenn ich den Antwortcode 200 aus der Protokollnachricht entfernen möchte, was soll ich tun?

Jeder Rat wird geschätzt!

Als @alecxe vorgeschlagen, liste ich relativ Protokollierung mein Snippet-Code:

logging.basicConfig(filename='werkzeug.log', level=logging.INFO) 
logger = logging.getLogger('werkzeug') 
logger.setLevel(logging.INFO) 
+0

Haben Sie die Protokollierung in Ihrer App eingerichtet? Was hast du in deiner 'main.py' App-Eintragsdatei? – alecxe

+0

Verwandte Themen: http://stackoverflow.com/questions/17743019/flask-logging-cannot-get-it-to-write-to-a-file. – alecxe

+0

@alecxe Ich habe meine Frage aktualisiert. Anscheinend kann der Thread, den Sie zur Verfügung gestellt haben, meine Frage nicht beantworten, so wie es keine 'remote_addr' gibt und ich nicht weiß, welche Variable ich für' remote_addr' verwenden soll? – abelard2008

Antwort

2

Sie können werkzeug.serving.WSGIRequestHandler Unterklasse das Verhalten außer Kraft setzen Sie nicht mögen:

import logging 
from flask import Flask 
from werkzeug.serving import WSGIRequestHandler, _log 

app = Flask(__name__) 

@app.route('/hello') 
def hello(): 
    return '<html><body><p>Hello, World.</p></body></html>' 

class MyRequestHandler(WSGIRequestHandler): 
    # Just like WSGIRequestHandler, but without "- -" 
    def log(self, type, message, *args): 
     _log(type, '%s [%s] %s\n' % (self.address_string(), 
             self.log_date_time_string(), 
             message % args)) 

    # Just like WSGIRequestHandler, but without "code" 
    def log_request(self, code='-', size='-'): 
     self.log('info', '"%s" %s', self.requestline, size) 

if __name__=="__main__": 
    logging.basicConfig(filename='werkzeug.log', level=logging.INFO) 
    logger = logging.getLogger('werkzeug') 
    logger.setLevel(logging.INFO) 
    app.run(debug=True, request_handler=MyRequestHandler) 

Das resultierende Protokolldatei:

INFO:werkzeug: * Running on http://127.0.0.1:5000/ 
INFO:werkzeug: * Restarting with reloader 
INFO:werkzeug:127.0.0.1 [30/Mar/2016 02:28:24] "GET /?foo HTTP/1.1" - 
INFO:werkzeug:127.0.0.1 [30/Mar/2016 02:28:28] "GET /hello HTTP/1.1" - 
+0

@ robφ Du bist großartig, vielen Dank! – abelard2008