%DOCUMENTS% 环境变量在 WPF 应用程序的 App.config 文件中不起作用

问题描述 投票:0回答:1

我有一个 WPF 应用程序,想要使用 Serilog 在本地 txt 文件中记录上下文。我已经安装了 SerilogSerilog.Sinks.FileSerilog.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 文件夹有直接的环境变量吗?

c# wpf environment-variables serilog serilog-sinks-file
1个回答
0
投票

但是Documents文件夹有直接的环境变量吗?

这应该适用于 C#:

Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);

在配置中,

%USERPROFILE%\Documents
应该可以正常工作。

© www.soinside.com 2019 - 2024. All rights reserved.