title: Should UdpClient be a singleton when using it for logging?
body: <p>I'm using Graphite.NET for logging to statsD. Underneath the hood, it uses UdpClient to write to the statD server. <a href="https://github.com/ragnard/Graphite.NET/blob/master/Graphite/StatsD/StatsDClient.cs" rel="nofollow">Source</a>. I think makes sense to create this as a singleton because I will be logging frequently and it seems that there will be a lot of overhead in creating this client and connecting every time I want to log. Is there any downside to doing this? What happens if the connection gets interrupted: will an exception be thrown? Will my logger be recreated by StuctureMap next time I try to use the logger? Here's what my SM configuration looks like:</p>
  
  <pre><code>x.For&lt;IStatsDClientAdapter&gt;()
                   .Singleton()
                   .Use&lt;StatsDClientAdapter&gt;()
                   .Ctor&lt;string&gt;("hostname").EqualToAppSetting("GraphiteHostname")
                   .Ctor&lt;int&gt;("port").EqualToAppSetting("GraphitePort")
                   .Ctor&lt;string&gt;("keyPrefix").EqualToAppSetting("GraphiteKeyPrefix");
  </code></pre>