我使用 NLog 进行下一个配置:
<targets>
<target xsi:type="File" name="f" fileName="${basedir}/logs/${shortdate}.log"
layout="${longdate} ${uppercase:${level}} ${message}" />
</targets>
<rules>
<logger name="*" minlevel="Trace" writeTo="f" />
</rules>
我试图得到FileName
的财产FileTarget
(我检查了一下,集合中只有一个 FileTarget)
NLog.LogManager.GetCurrentClassLogger().Info("test");
var logFile = (from t in NLog.LogManager.Configuration.AllTargets
where t is NLog.Targets.FileTarget
select (NLog.Targets.FileTarget)t).FirstOrDefault();
但 logFile.FileName 仅包含文件名模式,与设置中指定的方式完全相同。
如何获取当前日志文件的运行时路径?
这对我来说很有效:
var fileTarget = LogManager.Configuration?.FindTargetByName<NLog.Targets.FileTarget>("file");
string fileName = fileTarget?.FileName.Render(LogEventInfo.CreateNullEvent());
if (string.IsNullOrEmpty(fileName) || !File.Exists(fileName))
throw new Exception("Log file does not exist.");
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)