2010-08-07 4 views
0

J'ai généralement des méthodes qui retournent IList. Je dois enregistrer le résultat qui revient dans cette liste.Qu'est-ce qu'un moyen simple de consigner tous les éléments dans une liste en utilisant log4net (ou d'autres cadres de journalisation)?

Existe-t-il un meilleur moyen que de boucler sur les éléments de la liste et de les imprimer un par un comme ceci?

foreach(string productName in productsNames) 
      { 
       prodsNames.Append(productName + " "); 
      } 
Logger.Debug("Loading data for Producers: " + prodsNames); 

Y at-il un moyen de rendre cela plus facile?

Répondre

1

Je voudrais écrire un wrapper pour log4net qui expose une méthode comme ceci:

void Debug(string message, IList elements); 

La mise en œuvre pourrait ressembler être comme suit (certains détails sont omis):

public Debug(string message, IList elements) 
{ 
    // this.Logger returns a reference to ILog object 
    if (this.Logger.IsDebugEnabled) 
    {    
     string logMessage; 
     // build the string that you want to write to the log 
     this.Logger.Debug(logMessage);  
    } 
} 

C'est juste un exemple: Vous pouvez concevoir votre interface de la manière qui vous convient le mieux.

Here Vous pouvez trouver quelques idées à quoi pourrait ressembler une enveloppe.

+0

peut-être aussi considérer ceci, si vous écrivez un wrapper: http://stackoverflow.com/questions/2049992/when-using-wrapper-how-to-preserve-class-and-method-name-for-log4net- pour-log/3448439 # 3448439 –

0

Sérialiser la liste à XML, consigner la chaîne XML.