Version: 2.3.3
File Log
用途說明#
傳送請求及回應日誌至檔案。
此插件會使用I/O將日誌寫入實體檔案內,針對比較慢速的儲存資源,可能會影響到部分性能。
若API Manager是架設在Kubernetes上,可以額外指定串流(如:/dev/stdout 及 /dev/stderr)。
日誌格式請參考下方:日誌格式。
欄位配置說明#
啟用時可以看到以下畫面:
對應的配置說明如下:
| 參數 | 類型 | 預設值 | 說明 | 必填 |
|---|---|---|---|---|
| path | string | 輸出日誌文件的文件路徑。 ex: /tmp/file.log如果此文件不存在,則插件會創建日誌文件,來確保具有對此文件的寫入權限。 請注意設定的路徑是否有足夠權限能夠創立文件。 | V | |
| reopen | boolean | false | 確定是否在每次請求時關閉並重新打開日誌文件。 如果沒有重新打開文件,且文件已經被移動或循環使用的情況下,插件將會繼續寫入過時的文件描述符,造成資訊丟失。 | V |
用法示例#
日誌格式#
日誌使用JSON的格式來組成,如下:
request包含有關客戶端發送的請求。response包含發送給客戶端的回應。tries包含負載均衡器對此請求進行的(成功和失敗)列表。route包含請求所對應之特定的API Manager 路由設定資料。service包含請求所對應之API Manager 路由關聯的服務設定資料。authenticated_entity如果已啟動身份認證插件,則會包含認證憑據。consumer如果已啟動身份認證插件,則會包含認證的用戶設定資料。latencies包含有關延遲的一些數據:proxy是最終服務處理請求所花費的時間。kong是運行所有插件所需的內部延遲。request是從客戶端讀取第一個字節到將最後一個字節發送到客戶端之間經過的時間。對於檢測速度較慢的客戶端很有用。
client_ip包含原始客戶端IP地址。started_at包含開始處理請求的時間的UTC時區時戳。
在全局啟用插件#
- 從網站左邊Menu中
外掛插件頁面中,點選右上角的新增外掛插件:

- 點選後,選擇
日誌頁籤,並啟用File Log,填寫內容參考欄位配置說明,設定成功後,任何請求(不分服務、路由、用戶)的日誌都會寫入路徑對應的文件內。
在服務端上啟用插件#
- 從網站左邊Menu中
服務 > 服務列表頁面中,選擇要啟用此插件的服務,假設為google,點選對應的編輯按鈕:

- 在編輯畫面中,點選上方的
外掛插件頁籤,再點選頁籤內容上方的新增外掛插件按鈕:

點選後,選擇 日誌 頁籤,並啟用File Log,填寫內容參考欄位配置說明,設定成功後,僅有此服務(範例為google)請求的日誌會寫入路徑對應的文件內。
在路由端上啟用插件#
可以由兩種方式來選擇路由,並啟用插件:
方式一:路由列表#
- 從網站左邊Menu中
服務 > 路由列表頁面中,選擇要啟用此插件的路由,假設為google,點選對應的編輯按鈕 :

方式二:服務 > 服務列表 > 路由列表#
- 從網站左邊Menu中
服務 > 服務列表頁面中,選擇要啟用此插件的路由 所屬之服務(假設為google),點選對應的編輯按鈕。
在編輯畫面中,點選上方的 路由 頁籤,選擇要啟用此插件的路由(假設為google),點選對應的編輯按鈕:

- 承第1步,點擊上述兩種方式之一的編輯按鈕後,在編輯畫面中,點選上方的
外掛插件頁籤,再點選頁籤內容上方的新增外掛插件按鈕:

點選新增外掛插件 按鈕後,選擇 日誌 頁籤,並啟用File Log,填寫內容參考欄位配置說明,設定成功後,僅有此路由(範例為google)請求的日誌會寫入路徑對應的文件內。
在用戶端上啟用插件#
- 從網站左邊Menu中
訂閱用戶 > 用戶列表頁面中,選擇要啟用此插件的用戶,假設為portaladmin,點選對應的編輯按鈕 :

- 在編輯畫面中,點選上方的
外掛插件頁籤,再點選頁籤內容上方的新增外掛插件按鈕:

點選後,選擇 日誌 頁籤,並啟用File Log,填寫內容參考欄位配置說明,設定成功後,僅有此用戶(範例為portaladmin)請求的日誌會寫入路徑對應的文件內。
驗證#
假設目前僅能夠在/tmp路徑底下創立文件,則配置的path設定為/tmp/file.log。
透過API Manager去呼叫服務,範例如下(使用curl命令來測試):
API Manager在取得服務的回應後,會將該次的請求&回應之日誌,寫入對應之/tmp/file.log路徑文件內。
如下圖所示,即為設定驗證成功。
