Узнать путь логирования NLog
Имеется (легаси)проект на ASP.Net MVC, в котором используется NLog. Пытаюсь выяснить, где хранятся логи. Конфигурации в файле конфига нет. LogManager.Configuration в рантайме пустой. Код использования NLog следующий:
var logger = LogManager.GetLogger(<loggerName>);
...
logger.Log(typeof(NLog.Logger), <logInfo>);
Поиск на диске по данному ничего не дал. Никак не пойму, как в этом случае работает NLog. Заранее спасибо
Ответы (2 шт):
Автор решения: Frehzy
→ Ссылка
Посмотрите в NLog.config подобную строчку:
<target name="logfile" xsi:type="File"
fileName="${specialfolder:folder=ApplicationData}/LogFile.txt"/>
Полезные ссылки:
UPD:
private static readonly Logger _logger = LogManager.GetCurrentClassLogger();
public static string ProgramName => $"[{Process.GetCurrentProcess().MainModule.ModuleName}]";
public static void Warn(string message)
{
_logger.Warn($"{ProgramName}\n{message}");
Console.WriteLine(message);
}
Автор решения: Александр Пертенава
→ Ссылка
По итогу использования святого метода "тыка" могу сказать, что NLog не бросает ошибки при отсутствии конфигурации. Проблема решилась добавлением этого самого файла конфигурации с указанием стандартных разделов targets и rules. В моём случае (если кому-то пригодится):
<шапка файла...>
<targets>
<target name="SiteWorkflowFile"
xsi:type="File"
fileName="C:\Logs\SiteWorkflow\${date:format=yyyyMMdd}.log"
createDirs="true"
concurrentWrites="true"
deleteOldFileOnStartup="false"
header="TimeStamp;LogLevel;Ip;Message"
layout="${longdate};${level};${event-context:message}" />
</targets>
<rules>
<logger name="SiteWorkflow" writeTo="SiteWorkflowFile" />
</rules>