private Server GetServer()

in src/Elastic.CommonSchema.NLog/EcsLayout.cs [608:631]


		private Server GetServer(LogEventInfo logEventInfo, Server defaultServer)
		{
			var serverUser = ServerUser?.Render(logEventInfo);
			var serverAddress = ServerAddress?.Render(logEventInfo);
			var serverDomain = ServerDomain?.Render(logEventInfo);
			var serverIp = ServerIp?.Render(logEventInfo);

			var previousServer = _previousServer ?? defaultServer;
			if ((string.IsNullOrEmpty(serverUser) || serverUser == previousServer?.User?.Name)
			  && (string.IsNullOrEmpty(serverAddress) || serverAddress == previousServer?.Address)
			  && (string.IsNullOrEmpty(serverDomain) || serverDomain == previousServer?.Domain)
			  && (string.IsNullOrEmpty(serverIp) || serverIp == previousServer?.Ip))
				return previousServer;

			var server = new Server
			{
				User = string.IsNullOrEmpty(serverUser) ? previousServer?.User : new User() { Name = serverUser },
				Address = string.IsNullOrEmpty(serverAddress) ? previousServer?.Address : serverAddress,
				Domain = string.IsNullOrEmpty(serverDomain) ? previousServer?.Domain : serverDomain,
				Ip = string.IsNullOrEmpty(serverIp) ? previousServer?.Ip : serverIp,
			};
			_previousServer = server;
			return server;
		}