private Host GetHost()

in src/Elastic.CommonSchema.NLog/EcsLayout.cs [662:685]


		private Host GetHost(LogEventInfo logEventInfo, Host defaultHost)
		{
			var hostId = HostId?.Render(logEventInfo);
			var hostName = HostName?.Render(logEventInfo);
			var hostIp = HostIp?.Render(logEventInfo);

			var previousHost = _previousHost ?? defaultHost;
			if ((string.IsNullOrEmpty(hostId) || hostId == previousHost?.Id)
			  && (string.IsNullOrEmpty(hostName) || hostName == previousHost?.Hostname)
			  && (string.IsNullOrEmpty(hostIp) || (previousHost?.Ip?.Length == 1 && hostIp == previousHost.Ip[0])))
				return previousHost;

			var host = new Host
			{
				Id = string.IsNullOrEmpty(hostId) ? previousHost?.Id : hostId,
				Hostname = string.IsNullOrEmpty(hostName) ? previousHost?.Hostname : hostName,
				Ip = string.IsNullOrEmpty(hostIp) ? previousHost?.Ip : new[] { hostIp },
				Type = previousHost?.Type,
				Architecture = previousHost?.Architecture,
				Os = previousHost?.Os,
			};
			_previousHost = host;
			return host;
		}