我正在尝试更改写入 Serilog 文件的位置。它将写入项目根目录或下面的目录(例如,StructuredLogs/file-here.txt),但每当我尝试使用环境变量或写入绝对文件路径甚至相对文件路径时,它只会写入根目录并用 替换 / 或 \(正确转义):
设置在 appSettings.json 中,如下所示:
"Serilog": {
"Using": [],
"Properties": {
"ApplicationName": "Test API"
},
"MinimumLevel": {
"Default": "Debug",
"Override": {
"Microsoft": "Debug",
"Microsoft.TestApi": "Debug",
"System": "Debug"
}
},
"Enrich": [ "FromLogContext", "WithMachineName", "WithProcessId", "WithProcessName", "WithThreadId" ],
"WriteTo": [
{ "Name": "Console" },
{
"Name": "File",
"Args": {
"path": "D:\\repo\\micro-services\\Apis\\structured-logs\\logs.txt",
"rollingInterval": "Day",
"outputTemplate": "{Timestamp:G} {Message}{NewLine:1}{Exception:1}"
}
},
{
"Name": "File",
"Args": {
"path": "D:\\repo\\micro-services\\Apis\\structured-logs\\logs.json",
"rollingInterval": "Day",
"formatter": "Serilog.Formatting.Json.JsonFormatter, Serilog"
}
},
...
我努力了:
- 将解决方案从便携式驱动器移动到我的本地计算机:C:/ vs D:/
- 确保它在 Visual Studio 2022 的提升权限下运行
- 更改为我可以访问不同目录的各种方式(相对、绝对、环境变量等)
- 正斜杠与反斜杠
没有一个工作。
看起来对某种字符集编码问题有点熟悉,但不确定。
理想情况下我会有相对路径吗?