Я пытаюсь регистрировать исключения из моего API ASP.NET Core 2.2 с помощью специального промежуточного программного обеспечения.В промежуточном программном обеспечении я читаю путь к журналу из appsettings.json
Я читаю этот раздел «ExceptionLogPath» из appsettings.Developmnet.json и выполняю следующие операции
var dirPath = _config.GetSection("ExceptionLogPath").Value;
var filename = $"ErrorLog_{DateTime.Now.ToString("yyyyMMdd")}.txt";
String fullpath = Path.Combine(dirPath, filename);
if (!File.Exists(fullpath))
{
try
{
File.Create(fullpath).Close();
}
catch (Exception exx)
{
throw exx;
}
}
Переменная fullPathимеет точный путь, прочитанный из конфигурации.
Но File.Create(fullPath)
вызывает исключение, поскольку полный путь добавляет относительный путь моего проекта в качестве префикса во время выполнения!Следовательно, система не может найти путь для создания файла !!
Ниже приведены мои appsettings.Development.json
{
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Debug",
"System": "Information",
"Microsoft": "Information"
}
},
"ExceptionLogPath": "C:\\ExceptionLogs"
}
Проблема в том, что это происходит только в моем проекте,Тот же проект, когда мой коллега запускает на своем ПК, он может создать файл по указанному пути.
Я хочу знать, почему корневой каталог проекта добавляется, когда я читаю путь из appsettings.json.Я могу создать файл с жестко закодированными значениями пути.Сбой только при чтении из appsettings.json
EDIT При попытке создать файл по указанному пути я получаю следующее исключение:
The filename, directory name, or volume label syntax is incorrect : 'E:\Dev\Registry.API\\C:\ExceptionLogs\ErrorLog_20190926.txt'
Как видите, первая часть пути к файлу имеет префикс с корневым путем моего проекта!