J'utilise Graphite.NET pour la journalisation vers statsD. Sous le capot, il utilise UdpClient pour écrire sur le serveur statD. Source : . Je pense qu'il est logique de le créer en tant que singleton parce que je vais enregistrer fréquemment et il semble qu'il y aura beaucoup de frais généraux dans la création de ce client et la connexion chaque fois que je veux enregistrer. Y a-t-il un inconvénient à faire cela ? Que se passe-t-il si la connexion est interrompue : une exception sera-t-elle levée ? Mon logger sera-t-il recréé par StuctureMap la prochaine fois que j'essaierai d'utiliser le logger ? Voici à quoi ressemble ma configuration SM :
x.For<IStatsDClientAdapter>()
.Singleton()
.Use<StatsDClientAdapter>()
.Ctor<string>("hostname").EqualToAppSetting("GraphiteHostname")
.Ctor<int>("port").EqualToAppSetting("GraphitePort")
.Ctor<string>("keyPrefix").EqualToAppSetting("GraphiteKeyPrefix");