C# 4.0 如何使用Log4Net在单个自定义Log.Info字段中输出大量项(256项)?
我正在使用Log4Net,并创建了一个用于格式化和输出的自定义类 到windows服务循环中的CSV文件:C# 4.0 如何使用Log4Net在单个自定义Log.Info字段中输出大量项(256项)?,c#-4.0,log4net,C# 4.0,Log4net,我正在使用Log4Net,并创建了一个用于格式化和输出的自定义类 到windows服务循环中的CSV文件: private void AutoLogger(uint id, EdkDll.EE_DataChannel_t channel, double[] value) { try { log.Info(new Log { El
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(新的log
代码)中创建一个循环
价值观,比如:
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()
});
}
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()
}
});
谢谢。您可以将它循环成一个带分隔符的字符串(甚至可能是\n)然后log.Info(newString);?如果您想这样做,只需创建一个扩展方法
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()
});
}
例:
(注意:这不是经过测试的代码,我只是在这里输入)
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()
});
}
字符串strBuffer=”“;
List dingusList=GetDingusList();
foreach(Dingus Dingus在Dingus列表中)
{
\\如果定义了ToString,请在此处使用它,否则只需输出对象的所有属性即可
strBuffer+=dingus.name+“,“+dingus.value+”\n”;
}
日志信息(strBuffer);
另一种方法的示例如下:
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()
});
}
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()
});
}