Example #1
0
        /// <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);
        }
Example #2
0
 //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);
 }
Example #3
0
        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");
 }