gunicorn的日志配置
gunicorn的日志配置相關的常用參數有4個,分別是accesslog,access_log_format,errorlog,loglevel。
- accesslog:用戶的訪問的日志的目錄,和nginx的access_log很像,都是記錄訪問服務器的用戶的信息;
accesslog = '/var/logs/gunicorn.access.log'
accesslog = '-' # 記錄到標准輸出
- access_log_format:設置記錄訪問信息的日志的格式;
access_log_format = '%(h)s %(l)s %(u)s %(t)s'
access_log_format = '%(h) - %(t)s - %(u)s - %(s)s %(H)s'
gunicorn有多個內置的參數可用來配置:
h 遠程地址
l “-“
u 用戶名
t 時間
r 狀態行,如:GET /test HTTP/1.1
m 請求方法
U 沒有查詢字符串的URL
q 查詢字符串
H 協議
s 狀態碼
B response長度
b response長度(CLF格式)
f 參考
a 用戶代理
T 請求時間,單位為s
D 請求時間,單位為ms
p 進程id
{Header}i 請求頭
{Header}o 相應頭
{Variable}e 環境變量
- errorlog:記錄服務器運行的日志;
errorlog = '/var/logs/gunicorn.error.log'
errorlog = '-' # 記錄到標准輸出
- loglevel:設置錯誤日志的輸出等級;有個級別可以選擇;
loglevel = 'error' # 后面需要用引號包裹
debug:調試級別,記錄的信息最多;
info:普通級別;
warning:警告消息;
error:錯誤消息;
critical:嚴重錯誤消息;
- 其他參數
logger_class :選擇處理日志的方法
logger_class = 'STRING'
supervisor管理gunicorn
由於上線是gunicorn是交給supervisor管理的,supervisor可以記錄標准輸出和錯誤輸出,因此可以將日志信息設置成標准輸出,使得其可以和flask的應用程序共用日志文件,減少日志文件的數量,方便管理。
errorlog = '-'
accesslog = '-'