iT邦幫忙

2021 iThome 鐵人賽

DAY 13
0
永豐金融APIs

openAPI 對接實務系列 第 13

[day13] 設定gunicorn Logging

  • 分享至 

  • xImage
  •  

使用gunicorn作為HTTP Server的時候,必須手動指派gunicorn的logger作為flask的logger handler,才能夠正常的進行DEBUG、WARN、INFO、WARN、CRIT等的log紀錄

在Server.py內加入如下程式碼,以將gunicorn的logger與flask App結合

if __name__ != '__main__':
    gunicorn_logger = logging.getLogger('gunicorn.error')
    app.logger.handlers = gunicorn_logger.handlers
    app.logger.setLevel(gunicorn_logger.level)

gunicorn log 使用方式

指定logging以debug模式運作,修改Procfile內指令為:

web: gunicorn --log-level=debug Server:app

logger的使用方式:

# app.logger.[LEVEL]([LOG_MESSAGE])
app.logger.debug('this is a DEBUG message')
app.logger.info('this is an INFO message')
app.logger.warning('this is a WARNING message')
app.logger.error('this is an ERROR message')
app.logger.critical('this is a CRITICAL message')

在Server.py內加入一個新的route以測試log效果

@app.route('/')
def default_route():
    """Default route"""
    app.logger.debug('this is a DEBUG message')
    app.logger.info('this is an INFO message')
    app.logger.warning('this is a WARNING message')
    app.logger.error('this is an ERROR message')
    app.logger.critical('this is a CRITICAL message')
    return jsonify('that's a log of logs')

完成所有修改後將修改部署到heroku,測試功能吧

git add .
git commit -m "logging"
git push heroku main
heroku open
herolu logs -t

使用herolu logs 查詢logs,你應該可以看到如下輸出

2021-09-25T09:19:39.406667+00:00 app[web.1]: [2021-09-25 09:19:39 +0000] [7] [DEBUG] this is a DEBUG message
2021-09-25T09:19:39.406742+00:00 app[web.1]: [2021-09-25 09:19:39 +0000] [7] [INFO] this is an INFO message
2021-09-25T09:19:39.406816+00:00 app[web.1]: [2021-09-25 09:19:39 +0000] [7] [WARNING] this is a WARNING message
2021-09-25T09:19:39.406877+00:00 app[web.1]: [2021-09-25 09:19:39 +0000] [7] [ERROR] this is an ERROR message
2021-09-25T09:19:39.406935+00:00 app[web.1]: [2021-09-25 09:19:39 +0000] [7] [CRITICAL] this is a CRITICAL message

使用Heroku 模組以從網頁瀏覽logs

你可以通過Papertrail進行App的狀態監測與查看logs,可以省去自行撰寫logs分類,與命令列方式查閱不易的問題,並提供各種如錯誤通知的功能

heroku addons:create papertrail
heroku addons:open papertrail

你可以通過如上addons:open指令開啟模組的網頁,或是直接以如下方式從瀏覽器直接進入,將<app name>替換為你的heroku App名稱

https://addons-sso.heroku.com/apps/<app name>/addons/papertrail

今天補一點昨天沒有忘了補充的部分


上一篇
[day12]Heroku 基本使用
下一篇
[day14] 接收使用者的Line訊息
系列文
openAPI 對接實務30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言