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