file - UWP中的Serilog没有将日志写入D盘
问题描述
我在我的 UWP 应用程序中使用 Serilog。我可以毫无问题地将日志写入 App LocalState 文件夹。
但现在我想在D:驱动器特定文件夹中写入日志。我添加了broadFileSystemAccess受限功能并启用了设置的完全访问权限。
但它仍然没有在指定位置创建文件并且没有引发任何错误。
有人知道解决这个问题吗?提前致谢。
var file = @"D:\Logs\Serilog.txt";
Serilog.Log.Logger = new LoggerConfiguration().WriteTo.File(file).CreateLogger();
解决方案
文件访问权限文档中有一个关于广泛文件系统访问功能的非常重要的信息。我不确定你是否注意到它。
此
broadFileSystemAccess
功能仅适用于Windows.Storage命名空间中的 API。
这一点非常重要。因此,您的问题实际上是您需要检查LoggerConfiguration().WriteTo.File(file).CreateLogger()
相关方法是否使用 Windows.Storage API 写入文件。
通过我的检查,它使用StreamWriter方法写入文件。但此方法不包含在Windows.Storage API 中。所以,这个问题非常明显。你需要把这个 issue 提交到Github,让官方修改这个方法,让它在 UWP 中运行。
或者,如果您对serilog-sinks-file源代码感兴趣,您可以下载它并自己进行更改,然后,您可以为您的 UWP 项目编译自定义的 serilog 库版本。
推荐阅读
- sql - 如何保持派生表中的记录有序
- python - 在python中调用Parent类的所有子类
- flutter - Flutter: How do you set the text color for a ListTile that is 'selected'?
- mysql - 为什么它将与数据库的连接检测为未定义?
- postgresql - 如何在 Postgres 中使用 plperl 解决“错误:被操作掩码捕获”
- javascript - 打字稿:Web 工作者无法从导入的类创建对象
- python - Airflow DAG - 启动 kubernetes 作业
- visual-studio - 为什么我们必须删除 bin 文件夹才能被允许在服务器上发布
- reactjs - ag-grid-base-icons 包在哪里?
- python - Stripe api 不适合所有人?