我正在使用Log4Net并创建了一个用于格式化和输出的自定义类 到Windows服务循环中的CSV文件:
private void AutoLogger(uint id, EdkDll.EE_DataChannel_t channel, double[] value)
{
try
{
log.Info(new Log
{
ElapsedTime = timer.Elapsed.Minutes.ToString(),
UserId = id,
Action = channel.ToString(),
Value = value.ToString()
});
}
问题是“值”对于循环的每次迭代都有256个值。
我想在循环的log.Info(new Log
代码中创建一个循环
价值。类似的东西:
log.Info(new Log
{
ElapsedTime = timer.Elapsed.Minutes.ToString(),
UserId = id,
Channel = channel.ToString(),
for(int i = 0; i < value.Count; i++)
{
"Value_" + i = value[i].ToString()
}
});
但这是不可能的。知道怎么做吗?我的Log
课程如下:
public class Log
{
public DateTime DateAndTime { get; set; }
public string ElapsedTime { get; set; }
public string Level { get; set; }
public uint UserId { get; set; }
public string Action { get; set; }
public string Value { get; set; }
}
感谢。
答案 0 :(得分:0)
你可以将它循环到一个字符串中,用分隔符(甚至是\ n)然后log.Info(newString);?如果你想这样做,只需创建一个扩展方法......
EX: (注意:这不是我刚刚在这里输入的测试代码)
string strBuffer ="";
List<Dingus> dingusList = GetDingusList();
foreach( Dingus dingus in dingusList )
{
\\if you have a ToString defined use it here, else just output all the properties of your object
strBuffer+= dingus.name+" ,"+dingus.value+"\n";
}
log.Info(strBuffer);
另一种方法的例子: