
特定のリクエスト属性をロギングする
4
つの属性(フォームの詳細、リモート
IP
アドレス、ブラウザの識別名、
search4letters
関数
の出力)をロギングするように修正した
log_request
のコードを示します。
4
つの属性はそれぞれ
の
print
呼び出しでロギングされます。
def log_request(req:'flask_request', res:str) -> None:
with open('vsearch.log', 'a') as log:
print(req.form, file=log)
print(req.remote_addr, file=log)
print(req.user_agent, file=log)
print(res, file=log)
このコードは機能しますが、
print
呼び出しがデフォルトで改行文字を追加してしまうという問
題があり、リクエストごとに 4 行をロギングすることになります。このコードで記録されるログファ
イルのデータは次のようになります。
ImmutableMultiDict([('letters', 'aeiou'), ('phrase', 'hitch-hiker')])
127.0.0.1
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_3) ... Safari/601.4.4
{'i', 'e'}
ImmutableMultiDict([('letters', 'aeiou'), ('phrase', ...