阿吉的Sanic教程--03日誌的配置

3. 日誌文件

你的鼓勵是我前進的動力,請爲我點個贊吧!

Sanic框架中的日誌模塊是基於python3 的logging的,開發者可以爲其配置不同的方式。開發者也可以進行自定義設置,本小節不涉及此內容。

(1) 快捷配置

使用Sanic的默認配置。

from sanic import Sanic
from sanic.log import logger
from sanic.response import text
app = Sanic('test')
@app.route('/')
async def test(request):
    logger.info('Here is your log')
    return text('Hello World!')
if __name__ == "__main__":
  app.run(debug=True, access_log=True)

啓動之後你可以看到如下信息:

[2018-11-06 21:16:53 +0800] [24622] [INFO] Goin' Fast @ http://127.0.0.1:8000
[2018-11-06 21:16:53 +0800] [24667] [INFO] Starting worker [24667]

開發者可以向服務器發送信息,服務器將會打印出如下信息:

[2018-11-06 21:18:53 +0800] [25685] [INFO] Here is your log
[2018-11-06 21:18:53 +0800] - (sanic.access)[INFO][127.0.0.1:57038]: GET http://localhost:8000/  200 12

開發者可以在創建app應用時使用logging.config.dictConfig或log_config自定義日誌配置,具體代碼如下所示:

app = Sanic('test', log_config=LOGGING_CONFIG)

關閉日誌的使用,可以關閉設置access_log=False:

if __name__ == "__main__":
  app.run(access_log=False)

此方法將會跳過調用日誌函數,開發者可以做額外的工作提sanic的運行速度

if __name__ == "__main__":
  # disable debug messages
  app.run(debug=False, access_log=False)

(2) 配置

默認情況下,sainc的配置一般使用log_config參數一般使用sanic.log.LOGGING_CONFIG_DEFAULTS的配置字典。sainc框架包含3種日誌等級,如果開發者想要自定義配置,必須自己定義具體如下表所示:

日誌標示 使用說明
sainc.root 用於記錄網絡日誌
sainc.error 用於記錄錯誤日誌
sainc.access 用於記錄訪問日誌

(3) 日誌格式

python提供默認添加默認參數的方法[python(asctime,levename,message)],sainc提供登陸日誌參數的功能:

日誌上下文參數 參數 數據類型
host request.ip str
request request.method +””+request.url str
statues request.status int
byte len(response.body) int

默認登陸日誌的格式如下所示:

%(asctime)s-(%(name)s)[%(levelname)s][%(host)s]:%(request)s%(message)s%(status)d%(byte)d
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章