Beispiel #1
0
        internal static void ReconfigureLogger()
        {
            string logFile = Path.Combine(AppSettings.AppSettingsPath, "ErrorLog.txt");

            if (Log.Logger.Repository.Configured)
            {
                Log.Logger.Repository.Shutdown();
                Log.Logger.Repository.ResetConfiguration();
            }

            if (_clearLog)
            {
                try
                {
                    File.Delete(logFile);
                }
            // ReSharper disable EmptyGeneralCatchClause
                catch (Exception)
            // ReSharper restore EmptyGeneralCatchClause
                {

                }
                _clearLog = false;
            }

            PatternLayout layout = new PatternLayout();
            LevelRangeFilter filter = new LevelRangeFilter();

            if (AppSettings.UseDebug)
            {
                layout.ConversionPattern = "%date{HH:mm:ss} [%thread] %-5level %logger.%method(%line) - %message%newline";

                filter.LevelMin = Level.All;
            }
            else
            {
                layout.ConversionPattern = "%date{HH:mm:ss} %-5level %logger - %message%newline";

                filter.LevelMin = Level.Warn;
            }

            filter.AcceptOnMatch = true;

            layout.ActivateOptions();

            FileAppender file = new FileAppender
                {
                    Layout = layout,
                    AppendToFile = true,
                    Encoding = new UTF8Encoding(),
                    File = logFile,
                    ImmediateFlush = true
                };
            file.AddFilter(filter);

            file.ActivateOptions();

            BasicConfigurator.Configure(file);

            if (AppSettings.UseDebug)
            {
                Log.Info("Debug information enabled");
            }
        }