Küçük bir dosya dönüştürme yardımcı programı yazıyorum. Dosyalar bir dizine bırakıldığında otomatik olarak dönüştürülür.NLog içinde çalışma zamanı sırasında günlük dosyaları ekleme/kaldırma
Günlüğe kaydetme için NLog kullanıyorum. NLog.conf (ve üretilen tüm iletiler alır) kullanılarak yapılandırılan bir merkezi günlük dosyasının yanı sıra, her giriş dosyası için benzer bir ada sahip olan ve tüm günlük iletilerini içeren bir ek günlük dosyası oluşturmak istiyorum. Dönüştürme işlemi.
Ne yazık ki, çalışma zamanı sırasında uygun kuralla birlikte yeni bir dosya hedefinin nasıl eklendiğini öğrenemiyorum. Tüm Logger
nesnelerinin, dönüştürme işlemi sırasında yeni günlük dosyasına yazılmasını istiyorum.
var logfile = new NLog.Targets.FileTarget();
logfile.FileName = fileName + ".log";
logfile.KeepFileOpen = true;
logfile.Initialize();
var rule = new NLog.Config.LoggingRule("*", logfile);
NLog.LogManager.Configuration.LoggingRules.Add(rule);
NLog.LogManager.ReconfigExistingLoggers();
//
// Proceed with converting file
//
logfile.Flush();
NLog.LogManager.Configuration.LoggingRules.Remove(rule);
NLog.LogManager.ReconfigExistingLoggers();
gibi bir şey denedik ama hiçbir günlük dosyası oluşturuldu.
Neyi yanlış yaptım? Herhangi bir fikir?
yeniden atanması ile hat çok önemlidir: LogManager.Configuration = yapılandırma; – habakuk
Açıklamak için ** Yeniden atama satırı çok önemlidir: LogManager.Configuration = config; ** Bu, NLog'un Yapılandırma özelliği için alıcıları ve ayarlayıcılarını yazması nedeniyle doğrudur. Güzel değil, ama değiştirilmiş bir nesne ile tekrar ayarlanması gerekiyor; özelliği doğrudan değiştiremezsiniz. – zshift
Bunu çalışmak için aşağıdaki logger değişkenini yeniden atamam gerekiyordu: logger = LogManager.GetCurrentClassLogger(); – Henry