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); } }