Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 4.0 如何使用Log4Net在单个自定义Log.Info字段中输出大量项(256项)?_C# 4.0_Log4net - Fatal编程技术网

C# 4.0 如何使用Log4Net在单个自定义Log.Info字段中输出大量项(256项)?

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

我正在使用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(新的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()
                });
            }