gpt4 book ai didi

c# - 使用 C# UWP 的 Serilog WriteTo.File

转载 作者:行者123 更新时间:2023-12-03 08:46:36 24 4
gpt4 key购买 nike

我正在用 C# 编写一个 uwp 应用程序,我想使用 serilog 来写入日志文件。当我在 .NET Core 控制台应用程序中执行此操作时,它会创建包含所需内容的文件。

在 uwp 中,我可以在 GUI 上显示日志消息,但不会创建日志文件(是的,我有 BroadFileSystemAccess)。

我的代码:

Log.Logger = new LoggerConfiguration().WriteTo.File("log.txt").CreateLogger();
Log.Debug("TEST");
Log.CloseAndFlush();

我希望它在目录中创建 log.txt 文件,可以使用 Windows.Storage.ApplicationData.Current.LocalFolder 获取该文件,例如

storageFolder.CreateFileAsync("test.txt", CreationCollisionOption.ReplaceExisting);

是的。

任何人都可以告诉我我必须更改或考虑在我的 uwp 应用程序中使用 serilog 记录到文件吗?

最佳答案

Serilog 的一大优点是它是开源的,并且 you can look at its source code并查看它在做什么/如何工作。

如果您peek at the source code of the File sink ,您会注意到它只是通过 System.IO.File.Open 在您的应用程序运行的同一文件夹中打开一个文件,从 Visual Studio 运行的文件可能类似于 C:\Users\augustoproiete\MyApp\MyUwpApp\bin\x64\Debug\AppX\ 您无权写入文件。

这意味着您必须明确存储文件的位置,例如在应用程序的应用程序数据文件夹中。例如:

var logFilePath = Path.Combine(ApplicationData.Current.LocalFolder.Path, "log.txt");

Log.Logger = new LoggerConfiguration().WriteTo.File(logFilePath).CreateLogger();
Log.Debug("TEST");
Log.CloseAndFlush();

我建议您阅读Debugging and Diagnostics Serilog 文档页面,因为它解释了如何从 Serilog 看到错误消息 - 您会看到它无法创建文件及其正在使用的路径。

关于c# - 使用 C# UWP 的 Serilog WriteTo.File,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61250141/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com