使用log4net(或其他日志框架)记录列表中所有项目的简单方法是什么?

时间:2010-08-07 16:44:50

标签: .net logging log4net

我通常有返回IList的方法。 我需要将结果记录在此列表中。

有没有比循环列表中的项目更好的方法并逐个打印它们?

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

是否有一些方法可以让这更容易?

4 个答案:

答案 0 :(得分:1)

我会写一个log4net的包装器来公开这样的方法:

void Debug(string message, IList elements);

实现可能如下所示(省略了一些细节):

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);      
    }
}

这只是一个例子:您可以按照最适合您的方式设计界面。

Here你可以找到一些包装器的概念。

答案 1 :(得分:1)

使用NLog和Serilog,您可以执行以下操作:

Logger.Debug("Loading data for Producers: {producers}", prodsNames);

另请参阅https://messagetemplates.org/

答案 2 :(得分:0)

将列表序列化为 XML ,记录 XML 字符串。

答案 3 :(得分:0)

有没有理由不使用string.Join()

Logger.Debug("Loading data for Producers: " + string.Join(" ", productsNames));