《flask日誌logging二》在flask中使用日誌輸出
flask中app.logger是標準logging Logger。
例項:
app.logger.info('!!!!!!!!!!!!!!!!!!!!!!!!')
app.logger.debug('@@@@@@@@@@@@@@')
app.logger.warning('############ (%d apples)', 42)
app.logger.error('$$$$$$$$$$')
控制檯輸出:
[2018-08-06 06:20:23,231] INFO in logging_test: !!!!!!!!!!!!!!!!!!!!!!!!
[2018-08-06 06:20:23,232] DEBUG in logging_test: @@@@@@@@@@@@@@
[2018-08-06 06:20:23,232] WARNING in logging_test: ############ (42 apples)
[2018-08-06 06:20:23,233] ERROR in logging_test: $$$$$$$$$$
一、日誌輸出級別
ERROR:非常嚴重,必須馬上處理。
WARN:處理可以繼續,但必須要給予額外的關注。
INFO:瞭解應用正在做什麼。
DEBUG和TRACE:開發過程中除錯。
二、日誌的內容
要求:可讀、乾淨、詳細和自描述,注意不能透露一些保密內容。
反模式例子:魔法日誌,內容只有開發人員自己能看懂。
三、列印日誌
1、app.logger.info('this is a string')
2、message_info = 'the message is %s' % info
app.logger.info(message_info)
3、app.logger.info('the message if %s', info)
四、記錄異常資訊
使用exception方法,輸出內容包括堆疊資訊。日誌級別為ERROR。
a = [1, 2, 3]
try:
print a[3]
except Exception, e:
logging.exception(e)
輸出:
Traceback (most recent call last):
File "/open_falcon/logging_test/logging_test.py", line 46, in login
print a[3]
IndexError: list index out of range
若使用exception又不希望是ERROR級別,可以使用app.logger.info('message info is %s', message, exc_info=1)
五、自定義對異常的處理
@app.errorhandler(500)
def internal_server_error(e):
app.logger.exception('error 500: %s', e)
response = json_error('internal server error')
response.status_code = 500
return response
六、自定義異常
自定義啦