• 文檔 >
  • Torchserve 中的日誌記錄
快捷方式

Torchserve 中的日誌記錄

在本文中,我們將說明 TorchServe 中的日誌記錄。我們還將說明如何修改模型伺服器中日誌記錄的行為。TorchServe 中的日誌記錄也涵蓋指標,因為指標會記錄到檔案中。若要進一步了解如何自訂指標或定義自訂日誌佈局,請參閱TorchServe 上的指標

先決條件

  • 熟悉 log4j2 配置。有關如何配置 log4j 參數的資訊,請參閱日誌記錄服務

  • 熟悉 TorchServe 使用的預設 log4j2.xml

日誌類型

TorchServe 目前提供以下類型的日誌

  1. 存取日誌

  2. TorchServe 日誌

存取日誌

這些日誌收集對 TorchServe 的存取模式。存取日誌的配置如下

		<RollingFile
				name="access_log"
				fileName="${env:LOG_LOCATION:-logs}/access_log.log"
				filePattern="${env:LOG_LOCATION:-logs}/access_log.%d{dd-MMM}.log.gz">
			<PatternLayout pattern="%d{ISO8601} - %m%n"/>
			<Policies>
				<SizeBasedTriggeringPolicy size="100 MB"/>
				<TimeBasedTriggeringPolicy/>
			</Policies>
			<DefaultRolloverStrategy max="5"/>
		</RollingFile>

如屬性檔案中所定義,存取日誌收集在 {LOG_LOCATION}/access_log.log 檔案中。當您使用模型載入 TorchServe 並針對伺服器執行推論時,以下日誌會收集到 access_log.log 中

2018-10-15 13:56:18,976 [INFO ] BackendWorker-9000 ACCESS_LOG - /127.0.0.1:64003 "POST /predictions/resnet-18 HTTP/1.1" 200 118

上述日誌告訴我們,遠端主機 127.0.0.1:64003/predictions/resnet-18 進行了成功的 POST 呼叫,完成此請求花費了 118 毫秒。

這些日誌可用於確定模型伺服器的目前效能,以及了解模型伺服器接收到的請求。

TorchServe 日誌

這些日誌收集來自 TorchServe 和後端工作人員(自訂模型程式碼)的所有日誌。與 TorchServe 日誌相關的預設配置如下

		<RollingFile
				name="ts_log"
				fileName="${env:LOG_LOCATION:-logs}/ts_log.log"
				filePattern="${env:LOG_LOCATION:-logs}/ts_log.%d{dd-MMM}.log.gz">
			<PatternLayout pattern="%d{ISO8601} [%-5p] %t %c - %m%n"/>
			<Policies>
				<SizeBasedTriggeringPolicy size="100 MB"/>
				<TimeBasedTriggeringPolicy/>
			</Policies>
			<DefaultRolloverStrategy max="5"/>
		</RollingFile>

此配置預設會傾印高於 DEBUG 層級的所有日誌。

產生自訂日誌

您可能需要產生自訂日誌。這可能是為了除錯目的或記錄任何錯誤。為此,請將所需的日誌列印到 stdout/stderr。 TorchServe 會擷取 backend worker 產生的日誌,並將其記錄到日誌檔中。 以下是一些日誌範例:

  1. 列印到 stderr 的訊息

2018-10-14 16:46:51,656 [WARN ] W-9000-stderr org.pytorch.serve.wlm.WorkerLifeCycle - [16:46:51] src/nnvm/legacy_json_util.cc:209: Loading symbol saved by previous version v0.8.0. Attempting to upgrad\
e...
2018-10-14 16:46:51,657 [WARN ] W-9000-stderr org.pytorch.serve.wlm.WorkerLifeCycle - [16:46:51] src/nnvm/legacy_json_util.cc:217: Symbol successfully upgraded!
  1. 列印到 stdout 的訊息

2018-10-14 16:59:59,926 [INFO ] W-9000-stdout org.pytorch.serve.wlm.WorkerLifeCycle - preprocess time: 3.60
2018-10-14 16:59:59,926 [INFO ] W-9000-stdout org.pytorch.serve.wlm.WorkerLifeCycle - inference time: 117.31
2018-10-14 16:59:59,926 [INFO ] W-9000-stdout org.pytorch.serve.wlm.WorkerLifeCycle - postprocess time: 8.52

修改日誌的行為

要修改預設的日誌記錄行為,請定義一個 log4j2.xml 檔案。 有兩種方法可以使用自訂日誌啟動 TorchServe

透過 config.properties 提供

在您定義自訂 log4j2.xml 檔案後,將以下內容新增到 config.properties 檔案

vmargs=-Dlog4j.configurationFile=file:///path/to/custom/log4j2.xml

然後如下所示啟動 TorchServe

$ torchserve --start --ts-config /path/to/config.properties

或者

$ torchserve --start --log-config /path/to/custom/log4j2.xml

啟用非同步日誌記錄

如果您的模型非常輕量級並且您想要高吞吐量,請考慮啟用非同步日誌記錄。 日誌輸出可能會延遲,並且如果 TorchServe 意外終止,則可能會遺失最新的日誌。 預設情況下,非同步日誌記錄已停用。 要啟用非同步日誌記錄,請在 config.properties 中新增以下屬性

async_logging=true

文檔

取得 PyTorch 的完整開發者文件

檢視文件

教學

取得初學者和進階開發人員的深入教學課程

檢視教學

資源

尋找開發資源並獲得您問題的解答

檢視資源