Beispiel #1
0
        private static void SetupLogging(RuntimeSettings settings, ContainerBuilder builder)
        {
            var logFileName = settings.CustomLogFileName ?? "log.txt";
            var logLevel    = settings.TracingEnabled ? LogLevel.Debug : LogLevel.Info;

            // Add custom date time format renderer as the default is too long
            ConfigurationItemFactory.Default.LayoutRenderers.RegisterDefinition("simpledatetime", typeof(SimpleDateTimeRenderer));

            var logConfig = new LoggingConfiguration();
            var logFile   = new FileTarget();

            logConfig.AddTarget("file", logFile);
            logFile.Layout           = "${longdate} ${level} ${message} ${exception:format=ToString}";
            logFile.FileName         = Path.Combine(settings.DataFolder, logFileName);
            logFile.ArchiveFileName  = "log.{#####}.txt";
            logFile.ArchiveAboveSize = 500000;
            logFile.MaxArchiveFiles  = 5;
            logFile.KeepFileOpen     = false;
            logFile.ArchiveNumbering = ArchiveNumberingMode.DateAndSequence;
            var logFileRule = new LoggingRule("*", logLevel, logFile);

            logConfig.LoggingRules.Add(logFileRule);

            var logConsole = new ColoredConsoleTarget();

            logConfig.AddTarget("console", logConsole);

            logConsole.Layout = "${simpledatetime} ${level} ${message} ${exception:format=ToString}";
            var logConsoleRule = new LoggingRule("*", logLevel, logConsole);

            logConfig.LoggingRules.Add(logConsoleRule);

            var logService = new LogCacheService();

            logConfig.AddTarget("service", logService);
            var serviceRule = new LoggingRule("*", logLevel, logService);

            logConfig.LoggingRules.Add(serviceRule);

            LogManager.Configuration = logConfig;
            if (builder != null)
            {
                builder.RegisterInstance(LogManager.GetCurrentClassLogger()).SingleInstance();
            }
        }
Beispiel #2
0
        public static LoggingConfiguration GetLoggingConfiguration(RuntimeSettings settings, bool fileOnly = false)
        {
            var logFileName = settings.CustomLogFileName ?? "log.txt";
            var logLevel    = settings.TracingEnabled ? NLog.LogLevel.Debug : NLog.LogLevel.Info;

            // Add custom date time format renderer as the default is too long
            ConfigurationItemFactory.Default.LayoutRenderers.RegisterDefinition("simpledatetime", typeof(SimpleDateTimeRenderer));

            var logConfig = new LoggingConfiguration();
            var logFile   = new FileTarget();

            logConfig.AddTarget("file", logFile);
            logFile.Layout           = "${longdate} ${level} ${message} ${exception:format=ToString}";
            logFile.FileName         = Path.Combine(settings.DataFolder, logFileName);
            logFile.ArchiveFileName  = Path.Combine(settings.DataFolder, logFileName + ".{#####}.txt");
            logFile.ArchiveAboveSize = 500000;
            logFile.MaxArchiveFiles  = 5;
            logFile.KeepFileOpen     = false;
            logFile.ArchiveNumbering = ArchiveNumberingMode.DateAndSequence;
            var logFileRule = new LoggingRule("*", logLevel, logFile);

            logConfig.LoggingRules.Add(logFileRule);

            if (!fileOnly)
            {
                var logConsole = new ColoredConsoleTarget();
                logConfig.AddTarget("console", logConsole);

                logConsole.Layout = "${simpledatetime} ${level} ${message} ${exception:format=ToString}";
                var logConsoleRule = new LoggingRule("*", logLevel, logConsole);
                logConfig.LoggingRules.Add(logConsoleRule);

                var logService = new LogCacheService();
                logConfig.AddTarget("service", logService);
                var serviceRule = new LoggingRule("*", logLevel, logService);
                logConfig.LoggingRules.Add(serviceRule);
            }

            return(logConfig);
        }
Beispiel #3
0
        public static LoggingConfiguration GetLoggingConfiguration(RuntimeSettings settings, bool fileOnly = false)
        {
            var logFileName = settings.CustomLogFileName ?? "log.txt";
            var logLevel    = settings.TracingEnabled ? NLog.LogLevel.Debug : NLog.LogLevel.Info;

            // Add custom date time format renderer as the default is too long
            ConfigurationItemFactory.Default.LayoutRenderers.RegisterDefinition("simpledatetime", typeof(SimpleDateTimeRenderer));

            var logConfig = new LoggingConfiguration();

            var logFile = new FileTarget
            {
                Layout           = "${longdate} ${level} ${message} ${exception:format=ToString}",
                FileName         = Path.Combine(settings.DataFolder, logFileName),
                ArchiveFileName  = Path.Combine(settings.DataFolder, logFileName + ".{#####}.txt"),
                ArchiveAboveSize = 2097152, // 2 MB
                MaxArchiveFiles  = 5,
                KeepFileOpen     = false,
                ArchiveNumbering = ArchiveNumberingMode.DateAndSequence
            };

            logConfig.AddTarget("file", logFile);

            var microsoftRule = new LoggingRule
            {
                LoggerNamePattern = "Microsoft.*",
                Final             = true
            };

            microsoftRule.SetLoggingLevels(LogLevel.Warn, LogLevel.Fatal);
            microsoftRule.Targets.Add(logFile);

            var microsoftDebugRule = new LoggingRule
            {
                LoggerNamePattern = "Microsoft.*"
            };

            microsoftDebugRule.SetLoggingLevels(LogLevel.Debug, LogLevel.Info);
            microsoftDebugRule.Final = true;
            if (settings.TracingEnabled)
            {
                microsoftDebugRule.Targets.Add(logFile);
            }
            logConfig.LoggingRules.Add(microsoftDebugRule);

            var logFileRule = new LoggingRule("*", logLevel, logFile);

            logConfig.LoggingRules.Add(logFileRule);

            if (!fileOnly)
            {
                var logConsole = new ColoredConsoleTarget
                {
                    Layout = "${simpledatetime} ${level} ${message} ${exception:format=ToString}"
                };
                logConfig.AddTarget("console", logConsole);

                var logConsoleRule = new LoggingRule("*", logLevel, logConsole);
                logConfig.LoggingRules.Add(logConsoleRule);

                var logService = new LogCacheService();
                logConfig.AddTarget("service", logService);

                var serviceRule = new LoggingRule("*", logLevel, logService);
                logConfig.LoggingRules.Add(serviceRule);

                microsoftRule.Targets.Add(logConsole);
                microsoftRule.Targets.Add(logService);

                if (settings.TracingEnabled)
                {
                    microsoftDebugRule.Targets.Add(logConsole);
                    microsoftDebugRule.Targets.Add(logService);
                }
            }

            logConfig.LoggingRules.Add(microsoftRule);

            return(logConfig);
        }