目录

登录 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,并花费了118毫秒完成此请求。

这些日志有助于确定模型服务器的当前性能,以及了解模型服务器接收到的请求。

PyTorch Serve 日志

这些日志收集了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捕获后端工作者生成的日志,并将其记录到日志文件中。一些示例日志如下:

  1. 打印到错误输出的消息:

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. 打印到标准输出的消息:

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 的全面开发人员文档

查看文档

教程

获取面向初学者和高级开发人员的深入教程

查看教程

资源

查找开发资源并解答您的问题

查看资源