UWP中的Serilog未在D驱动器中写入日志

时间:2019-07-18 08:51:25

标签: file logging uwp serilog

我在UWP应用程序中使用Serilog。我可以将日志写到App LocalState文件夹中。

但是现在我要在 D:驱动器特定文件夹中写入日志。我添加了 broadFileSystemAccess 受限功能,并从设置中启用了完全访问权限。

但是它仍然没有在指定位置创建文件,也没有引发任何错误。

有人知道解决办法吗?预先感谢。

var file = @"D:\Logs\Serilog.txt";

Serilog.Log.Logger = new LoggerConfiguration().WriteTo.File(file).CreateLogger();

1 个答案:

答案 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库版本。