private static void Warning(UnhandledException ex, Current current) { Debug.Assert(current.Adapter.Communicator != null); var output = new System.Text.StringBuilder(); output.Append("dispatch exception:"); output.Append("\nidentity: ").Append(current.Identity.ToString(current.Adapter.Communicator.ToStringMode)); output.Append("\nfacet: ").Append(StringUtil.EscapeString(current.Facet, "", current.Adapter.Communicator.ToStringMode)); output.Append("\noperation: ").Append(current.Operation); if (current.Connection != null) { try { for (ConnectionInfo?p = current.Connection.GetConnectionInfo(); p != null; p = p.Underlying) { if (p is IPConnectionInfo ipinfo) { output.Append("\nremote host: ").Append(ipinfo.RemoteAddress) .Append(" remote port: ") .Append(ipinfo.RemotePort); break; } } } catch (Exception) { } } output.Append("\n"); output.Append(ex.ToString()); current.Adapter.Communicator.Logger.Warning(output.ToString()); }
private static void Warning(UnhandledException ex, Current current) { Debug.Assert(current.Adapter.Communicator != null); var output = new System.Text.StringBuilder(); output.Append("dispatch exception:"); output.Append("\nidentity: ").Append(current.Identity.ToString(current.Communicator.ToStringMode)); output.Append("\nfacet: ").Append( StringUtil.EscapeString(current.Facet, current.Communicator.ToStringMode)); output.Append("\noperation: ").Append(current.Operation); if ((current.Connection as IPConnection)?.RemoteEndpoint is System.Net.IPEndPoint remoteEndpoint) { output.Append("\nremote address: ").Append(remoteEndpoint); } output.Append('\n'); output.Append(ex.ToString()); current.Adapter.Communicator.Logger.Warning(output.ToString()); }