private void ConfigureLogging(RuntimeConfiguration runtimeConfiguration, ContainerBuilder builder) { var configuration = new LoggingConfiguration(); Target loggingTarget; if (runtimeConfiguration.GetBool("UseSeq")) { var seqTarget = new SeqTarget { Name = "Seq", ServerUrl = "http://localhost:5341", Properties = { new SeqPropertyItem { Name = "MachineName", Value = "localhost", }, new SeqPropertyItem { Name = "hostname", Value = "${hostname}", }, new SeqPropertyItem { Name = "source", Value = "${callsite:fileName=true}", } }, }; loggingTarget = new BufferingTargetWrapper { Name = "buffer", BufferSize = 1000, FlushTimeout = 2500, WrappedTarget = seqTarget }; } else { loggingTarget = new ApplicationInsightsTarget() { Name = "ApplicationInsights" }; } configuration.AddTarget(loggingTarget); configuration.AddRule(LogLevel.Warn, LogLevel.Fatal, loggingTarget, "Microsoft.*", true); configuration.AddRule(LogLevel.Trace, LogLevel.Fatal, loggingTarget, "*", true); LogManager.Configuration = configuration; builder.RegisterGeneric(typeof(Logger <>)).As(typeof(ILogger <>)); builder.RegisterType <NLogLoggerFactory>().AsImplementedInterfaces().InstancePerLifetimeScope(); }
static void ToCompactJson(LogEventInfo evt, TextWriter output, IEnumerable <SeqPropertyItem> properties) { var target = new SeqTarget(); foreach (var prop in properties) { target.Properties.Add(prop); } target.TestInitialize(); target.RenderCompactJsonLine(evt, output); }
public static void InstallSeq(LaveyConfig config) { var cfg = LogManager.Configuration; var seq = new SeqTarget(); seq.Name = nameof(seq); seq.ApiKey = config.Seq.ApiKey; seq.ServerUrl = config.Seq.ToString(); cfg.AddTarget(seq); cfg.LoggingRules.Add(new LoggingRule("CommandsNext", LogLevel.Debug, seq) { Final = true }); }
static void ToCompactJson(LogEventInfo evt, TextWriter output, IEnumerable <SeqPropertyItem> properties, int?maxRecursionLimit = null) { var target = new SeqTarget(); if (maxRecursionLimit.HasValue) { target.MaxRecursionLimit = maxRecursionLimit.Value; } foreach (var prop in properties) { target.Properties.Add(prop); } target.TestInitialize(); target.RenderCompactJsonLine(evt, output); }
/// <summary> /// Constructor /// </summary> public LogManager_UWP() { var config = NLog.LogManager.Configuration; if (config == null) { config = new LoggingConfiguration(); } //Debuger #if DEBUG Windows.Storage.StorageFolder folder = Windows.Storage.ApplicationData.Current.LocalFolder; AppGlobal.Folders.LocalRootFolder = folder.Path; var debugerTarget = new DebuggerTarget("FileTrace") { Layout = @"${shortdate} | ${pad:padding=5:inner=${level:uppercase=true}} | ${gdc:item=device} | ${event-properties:MethodCode} | ${message} | ${exception}" }; config.AddTarget(debugerTarget); var fileTraceTarget = new FileTarget("FileTrace") { FileName = Path.Combine(folder.Path, @"log", "Trace-${shortdate}.txt"), Layout = "${longdate} ${pad:padding=5:inner=${level:uppercase=true}} ${gdc:item=device} ${gdc:item=user} ${event-properties:MethodCode} ${message} ${exception}", MaxArchiveFiles = 5, ArchiveEvery = FileArchivePeriod.Day, }; config.AddTarget(fileTraceTarget); config.LoggingRules.Add(new LoggingRule("*", LogLevel.Trace, fileTraceTarget)); var deviceProperty = new SeqPropertyItem() { Name = "Device", Value = "${gdc:item=device}", As = "device" }; var userProperty = new SeqPropertyItem() { Name = "User", Value = "${gdc:item=user}", As = "user" }; var methodCodeProperty = new SeqPropertyItem() { Name = "MethodCode", Value = "${event-properties:MethodCode} ", As = "methodCode" }; var seqSubTarget = new SeqTarget() { ServerUrl = "http://localhost:5341", Name = "Seq", //ApiKey = "vRQKdWlomEKG7ta4fOayww" //UNIT TEST ApiKey = "" }; seqSubTarget.Properties.Add(deviceProperty); seqSubTarget.Properties.Add(userProperty); seqSubTarget.Properties.Add(methodCodeProperty); var seqTarget = new BufferingTargetWrapper(seqSubTarget, 1000, 2000); seqTarget.Name = "seq"; config.AddTarget(seqTarget); config.LoggingRules.Add(new LoggingRule("*", LogLevel.Info, seqTarget)); NLog.GlobalDiagnosticsContext.Set("device", "TESTPC"); #endif /* * //File * //string folder = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); * Windows.Storage.StorageFolder folder = Windows.Storage.ApplicationData.Current.LocalFolder; * var fileInfoTarget = new FileTarget("FileInfo") * { * FileName = Path.Combine(folder.Path, "Log-${shortdate}.txt"), * Layout = "${longdate} ${pad:padding=5:inner=${level:uppercase=true}} ${message} ${exception}", * MaxArchiveFiles = 5, * ArchiveEvery = FileArchivePeriod.Day, * }; * var fileErrorTarget = new FileTarget("FileError") * { * FileName = Path.Combine(folder.Path, "LogError-${shortdate}.txt"), * Layout = "${longdate} ${pad:padding=5:inner=${level:uppercase=true}} ${message} ${exception}", * MaxArchiveFiles = 5, * ArchiveEvery = FileArchivePeriod.Day, * }; * * var fileTraceTarget = new FileTarget("FileTrace") * { * FileName = Path.Combine(folder.Path, "LogTrace-${shortdate}.txt"), * Layout = "${longdate} ${pad:padding=5:inner=${level:uppercase=true}} ${message} ${exception}", * MaxArchiveFiles = 5, * ArchiveEvery = FileArchivePeriod.Day, * }; * //fileTarget.FileName = Path.Combine(folder, "Log.txt"); * config.AddTarget("FileInfo", fileInfoTarget); * config.AddTarget("FileError", fileErrorTarget); * config.AddTarget("FileTrace", fileTraceTarget); * * //File Info rule * var fileInfoRule = new LoggingRule("*", LogLevel.Info, fileInfoTarget); * config.LoggingRules.Add(fileInfoRule); * //File Error rule * var fileErrorRule = new LoggingRule("*", LogLevel.Error, fileErrorTarget); * config.LoggingRules.Add(fileErrorRule); * //File Trace rule * var fileTraceRule = new LoggingRule("*", LogLevel.Trace, fileTraceTarget); * config.LoggingRules.Add(fileTraceRule); * //Debuger rule #if DEBUG * config.AddRuleForAllLevels(debugerTarget); #endif */ NLog.LogManager.Configuration = config; auditLogger = new AuditRepository(Path.Combine(AppGlobal.Folders.LocalRootFolder, DataTypeEnum.Audit.FileExtension, $"{DataTypeEnum.Audit.Name}.{DataTypeEnum.Audit.FileExtension}")); }