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();
        }
Пример #2
0
        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
            });
        }
Пример #4
0
        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);
        }
Пример #5
0
        /// <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}"));
        }