1. 程式人生 > >《flask日誌logging二》在flask中使用日誌輸出

《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

六、自定義異常

       自定義啦