我在UWP应用程序中使用Serilog。我可以将日志写到App LocalState文件夹中。
但是现在我要在 D:驱动器特定文件夹中写入日志。我添加了 broadFileSystemAccess 受限功能,并从设置中启用了完全访问权限。
但是它仍然没有在指定位置创建文件,也没有引发任何错误。
有人知道解决办法吗?预先感谢。
var file = @"D:\Logs\Serilog.txt";
Serilog.Log.Logger = new LoggerConfiguration().WriteTo.File(file).CreateLogger();
答案 0 :(得分:1)
File access permissions文档中有关 broadFileSystemAccess 功能的信息非常重要。我不确定你是否注意到它。
此
broadFileSystemAccess
功能仅适用于Windows.Storage名称空间中的API。
这一点非常重要。因此,实际上,您的问题是,如果使用Windows.Storage API向文件写入文件,则需要检查LoggerConfiguration().WriteTo.File(file).CreateLogger()
的相关方法。
通过检查,它使用StreamWriter方法写入文件。但是Windows.Storage API中未包含此方法。因此,问题非常明显。您需要将此问题提交给Github,并让官员修改此方法并使其在UWP中起作用。
或者,如果您对serilog-sinks-file源代码感兴趣,则可以下载并自己进行更改,然后,可以为UWP项目编译自定义serilog库版本。