Windows IoT - 在 C# 中记录活动
Windows IoT - logging activities in C#
对于我的学校项目,我尝试通过 TCP 套接字从我的树莓派 Windows 物联网与 PC 进行通信。一切正常,但我想记录流量并意识到是否出现问题。
所以我编写了这个 LogFilewriter:
public static void write(string message)
{
using (StreamWriter w = File.AppendText("\" + "log.txt"))
{
logging(message, w);
}
}
public static void logging(string logMessage, TextWriter w)
{
w.Write("\r\nLog Entry : ");
w.WriteLine("{0} {1}", DateTime.Now.TimeOfDay, DateTime.Now.Date);
w.WriteLine(" :");
w.WriteLine(" :{0}", logMessage);
w.WriteLine("-------------------------------");
}
问题是,如果我调用 Log.write(message) -(日志是 class),它会抛出以下异常:
Blockquote
Exception thrown: 'System.UnauthorizedAccessException' in System.IO.FileSystem.dll
有人知道为什么抛出这个异常吗?
Streamwriter 设置为 true,会将内容附加到文件
using (StreamWriter w = new StreamWriter("\" + "log.txt", true))
{logging(message, w);}
这不是和正常的一样吗windows?您不能写入与 EXE 相同的文件夹,因为权限不允许。或者是因为应用程序是沙盒。
我想这解释了?
上面写着,
我认为您应该为 UWP 应用程序使用 StorageFile 和 StorageFolder。我们使用了它们,到目前为止没有任何问题。当我尝试在第一个版本中使用文件 class 时,它根本不可用。
也许现在改变了。尝试将文件保存在 "C:\Users\USERNAME\AppData\Local\Packages\YOURPACKAGE" 中的文件中。该应用程序应该可以访问那里,也许您可以使用文件 class 然后。
阅读全文,因为它还提到文件 IO 是沙箱化的,并提供此 link 以建议如何写入文件,
对于我的学校项目,我尝试通过 TCP 套接字从我的树莓派 Windows 物联网与 PC 进行通信。一切正常,但我想记录流量并意识到是否出现问题。
所以我编写了这个 LogFilewriter:
public static void write(string message)
{
using (StreamWriter w = File.AppendText("\" + "log.txt"))
{
logging(message, w);
}
}
public static void logging(string logMessage, TextWriter w)
{
w.Write("\r\nLog Entry : ");
w.WriteLine("{0} {1}", DateTime.Now.TimeOfDay, DateTime.Now.Date);
w.WriteLine(" :");
w.WriteLine(" :{0}", logMessage);
w.WriteLine("-------------------------------");
}
问题是,如果我调用 Log.write(message) -(日志是 class),它会抛出以下异常:
Blockquote Exception thrown: 'System.UnauthorizedAccessException' in System.IO.FileSystem.dll
有人知道为什么抛出这个异常吗?
Streamwriter 设置为 true,会将内容附加到文件
using (StreamWriter w = new StreamWriter("\" + "log.txt", true))
{logging(message, w);}
这不是和正常的一样吗windows?您不能写入与 EXE 相同的文件夹,因为权限不允许。或者是因为应用程序是沙盒。
我想这解释了?
上面写着,
我认为您应该为 UWP 应用程序使用 StorageFile 和 StorageFolder。我们使用了它们,到目前为止没有任何问题。当我尝试在第一个版本中使用文件 class 时,它根本不可用。
也许现在改变了。尝试将文件保存在 "C:\Users\USERNAME\AppData\Local\Packages\YOURPACKAGE" 中的文件中。该应用程序应该可以访问那里,也许您可以使用文件 class 然后。
阅读全文,因为它还提到文件 IO 是沙箱化的,并提供此 link 以建议如何写入文件,