/// <summary> /// Register the /// </summary> private NLogAudit(AuditType minType, AuditTarget[] targets) { var config = new NLog.Config.LoggingConfiguration(); var minLevel = Translate(minType); foreach (var t in targets) { NLog.Targets.Target target = null; switch (t) { case AuditTarget.Console: target = new NLog.Targets.ColoredConsoleTarget("console"); break; case AuditTarget.File: target = new NLog.Targets.FileTarget("logfile") { FileName = GetDefaultLogFileName() }; break; case AuditTarget.Db: default: throw new NotImplementedException($"Audit target {t}"); } config.AddRule(minLevel, NLog.LogLevel.Fatal, target); } NLog.LogManager.Configuration = config; logger = NLog.LogManager.GetCurrentClassLogger(); Audit.Register(this); }
//Targets can be wrapped multiple times private static NLog.Targets.Target FindTargetByName(string targetName) { NLog.Targets.Target target = NLog.LogManager.Configuration.FindTargetByName(targetName); while ((target != null) && (target is NLog.Targets.Wrappers.WrapperTargetBase)) { target = (target as NLog.Targets.Wrappers.WrapperTargetBase).WrappedTarget; } return(target); }
internal static void CreateSqliteTarget(bool callFromOutside = true) { try { NLog.Config.LoggingConfiguration config = new NLog.Config.LoggingConfiguration(); NLog.Targets.Target dbTarget = FindTargetByName(TARGETDATABASE); SqliteConnectionStringBuilder connectionStringBuilder = new SqliteConnectionStringBuilder { ConnectionString = GetConnectionString() }; string dbFileName = connectionStringBuilder.DataSource; if (!string.IsNullOrEmpty(dbFileName)) { FileInfo fileInfo = new FileInfo(dbFileName); if (!fileInfo.Directory.Exists) { fileInfo.Directory.Create(); } if (!File.Exists(dbFileName)) { using (FileStream fs = File.Create(dbFileName)) { fs.Close(); } config.AddTarget(dbTarget); using (var context = new NLog.Config.InstallationContext(Console.Out))//Console.Out { config.Install(context); } } if (callFromOutside) { //register Logs db file using (FileSystemWatcher fileWatcher = new FileSystemWatcher(fileInfo.Directory.FullName, fileInfo.Name)) { fileWatcher.NotifyFilter = NotifyFilters.FileName; fileWatcher.EnableRaisingEvents = true; fileWatcher.IncludeSubdirectories = false; fileWatcher.Renamed += (sender, e) => { CreateSqliteTarget(false); }; fileWatcher.Deleted += (sender, e) => { CreateSqliteTarget(false); }; } } } } catch (Exception ex) { KraftLogger.LogError(ex); } }
private static IEnumerable<string> GetNLogTargetName (NLog.Targets.Target target) { if (!String.IsNullOrEmpty (target.Name)) yield return (target.Name); var name = target.GetType ().Name.Split ('.').Last (); if (target.Name != name) yield return name; name = name.Replace ("Target", ""); if (target.Name != name) yield return name; }
public NLogAsyncUnitTest() { logger1 = NLog.LogManager.GetLogger("Routine1:Tests"); logger2 = NLog.LogManager.GetLogger("Routine2:Tests"); verboseTarget = NLog.LogManager.Configuration.FindTargetByName("verbose3"); }