NLog kullanarak Windows Forms uygulamasının NET 4.5 (VS 2013) sürümü var.NLog'daki basedir değiştir Çalışma zamanındaki program hedefleri
<target name="asyncFileLog" xsi:type="AsyncWrapper">
<target name="logfileTrace" xsi:type="File" fileName="${basedir}/logs/${shortdate}Trace.log" layout="${longdate} ${message}" lineEnding="Default"/>
</target>
<target name="asyncFileError" xsi:type="AsyncWrapper">
<target name="logfileError" xsi:type="File" fileName="${basedir}/logs/${shortdate}Error.log" layout="${longdate} ${message} ${exception:format=tostring}" lineEnding="Default"/>
</target>
LogManager.Configuration.AllTargets.ToList();
döner 4 ürün değil, 2 öğe:
Hedef göründü.
var rutaLogs = ConfigurationManager.AppSettings["RutaLog"];
if (!Directory.Exists(rutaLogs)) return;
var list = LogManager.Configuration.AllTargets.ToList();
foreach (var target in list)
{
FileTarget fileTarget = null;
var wrapperTarget = target as WrapperTargetBase;
// Unwrap the target if necessary.
if (wrapperTarget == null)
{
fileTarget = target as FileTarget;
}
else
{
fileTarget = wrapperTarget.WrappedTarget as FileTarget;
continue;
}
var value = fileTarget.FileName.ToString();
value = value.Replace("${basedir}/logs/", rutaLogs);
fileTarget.FileName = value;
}
Değil şey oluşturur:
Ben
Bunu deneyin programlı çalışma zamanında yolu $ {basedir}/günlükleri değiştirmek istiyorum. LogManager.ReconfigExistingLoggers();
kullanmayı deneyin, ancak çalışmıyor.
Herhangi bir öneriniz var mı?
'fileName = "$ {var: basedir}/günlükleri/$ {shortdate} Trace.log" seçeneğini kullanarak İşleri' ve 'fileName =" $ {appSetting'in kullanarak çalışıyor: adı = RutaLog} $ {shortdate} Trace.log "'. *** $ {appsetting: name = key} *** kullanımı daha nettir. – Kiquenet