我有一个 WPF 应用程序,想要使用 Serilog 在本地 txt 文件中记录上下文。我已经安装了 Serilog、Serilog.Sinks.File 和 Serilog.Settings.AppSettings 软件包。
启动并终止该工具后,我无法在文件夹中找到txt文件。我想我使用错误的环境变量设置了路径值。有人可以帮我改正吗?
在 App.xaml.cs 文件的 App 类中,我在构造函数 App() 中添加以下代码。
Log.Logger=new LoggerConfiguration().ReadFrom.AppSettings().CreateLogger();
Log.Information("##########################################################");
Log.Information("############## Tool started...###############");
Log.Information("##########################################################");
在 App.config 文件中,我添加以下键值对来设置记录器。
<appSettings>
<add key="serilog:minimum-level" value="Verbose" />
<add key="serilog:using:File" value="Serilog.Sinks.File" />
<add key="serilog:write-to:File.path" value="%DOCUMENTS%\Logs\Tool-.txt" />
<add key="serilog:write-to:File.rollingInterval" value="Day" />
<add key="serilog:write-to:File.retainedFileCountLimit" value="10" />
</appSettings>
更新:
我将值更改为
%USERPROFILE%\Documents\ESI_Effort_A350\Logs\ESIA350-.txt
,现在可以使用了。看来这是一个解决方案。但是 Documents 文件夹有直接的环境变量吗?
但是Documents文件夹有直接的环境变量吗?
这应该适用于 C#:
Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
在配置中,
%USERPROFILE%\Documents
应该可以正常工作。