Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.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
Debugging 调试时是否可以写入文件而不是控制台?_Debugging_Xamarin - Fatal编程技术网

Debugging 调试时是否可以写入文件而不是控制台?

Debugging 调试时是否可以写入文件而不是控制台?,debugging,xamarin,Debugging,Xamarin,在Xamarin中,我经常使用控制台(WriteLine)调试应用程序 是否可以将一些行直接写入主机上某个位置的文件,而不使用控制台进行调试?我不想在手机上写文件,因为我将在开发机器上实时使用此文件。简单方法: 在应用程序中使用Console.WriteLine 在主机上,执行以下操作: /Developer/MonoTouch/usr/bin/mtouch --logdev > ~/myfile.log 现在您的Console.WriteLine输出将在~/myfile.log中

在Xamarin中,我经常使用控制台(WriteLine)调试应用程序

是否可以将一些行直接写入主机上某个位置的文件,而不使用控制台进行调试?我不想在手机上写文件,因为我将在开发机器上实时使用此文件。

简单方法:

  • 在应用程序中使用Console.WriteLine
  • 在主机上,执行以下操作:

    /Developer/MonoTouch/usr/bin/mtouch --logdev > ~/myfile.log
    
现在您的Console.WriteLine输出将在
~/myfile.log
中结束。缺点是,你会将所有内容写入设备日志,包括iOS本身和任何其他应用程序(有时这可能很重要)。然而,通过一些巧妙的grep用法,应该可以只过滤掉您的输出

更复杂的方法是将Console.WriteLine输出重定向到某种网络流,该网络流通过wifi将数据发送到主机(例如web服务)

简单的部分是重定向Console.WriteLine输出:

Console.SetOut (myNetworkStream);

其余部分将留给读者作为练习,因为这不是问题的一部分:)

如果您在console中工作,也许您可以通过在console命令后附加“>filename.txt”来完成。我认为,如果我只是将它附加到System.console.WriteLine,它将被解释为与任何其他字符一样。否则控制台会变得疯狂。:)啊哈,为什么不打开一个文件并写入它而不是控制台呢。抱歉,只是头脑风暴,我很久以前就用过Java。它在设备上运行,我需要在主机上实时访问它。如果您指定iOS或Xamarin,这将很有帮助。然而,无论哪种情况,答案都可能是“不”。在iOS中,控制台别名为设备日志,可以从主机访问。除此之外,您可能还需要一个Web服务来向其写入日志信息。