private MemoryAppender InitLog()
        {
            var appender = new log4net.Appender.MemoryAppender();
            var filter   = new log4net.Filter.LoggerMatchFilter {
                LoggerToMatch = typeof(Profiler).ToString(), AcceptOnMatch = true
            };

            appender.AddFilter(filter);
            log4net.Config.BasicConfigurator.Configure(appender);
            return(appender);
        }
Пример #2
0
        private static void SetupLogger()
        {
            try
            {
                if (trinityLog == null)
                {
                    lock (_loglock)
                    {
                        _Logger.Info("Setting up Trinity Logging");
                        int      myPid     = Process.GetCurrentProcess().Id;
                        DateTime startTime = Process.GetCurrentProcess().StartTime;

                        trinityLayout = new PatternLayout("%date{HH:mm:ss.fff} %-5level %logger{1} %m%n");
                        trinityLayout.ActivateOptions();

                        trinityFilter = new log4net.Filter.LoggerMatchFilter();
                        trinityFilter.LoggerToMatch = "Trinity";
                        trinityFilter.AcceptOnMatch = true;
                        trinityFilter.ActivateOptions();

                        Hierarchy h         = (Hierarchy)LogManager.GetRepository();
                        var       appenders = h.GetAppenders();

                        foreach (var appender in appenders)
                        {
                            if (appender is FileAppender)
                            {
                                trinityAppender = appender as FileAppender;
                            }
                        }

                        trinityAppender.Layout = trinityLayout;
                        //trinityAppender.AddFilter(trinityFilter);
                        trinityAppender.LockingModel = new FileAppender.ExclusiveLock();
                        //trinityAppender.LockingModel = new FileAppender.InterProcessLock();

                        trinityAppender.ActivateOptions();

                        trinityLog               = LogManager.GetLogger("TrinityDebug");
                        trinityLogger            = ((log4net.Repository.Hierarchy.Logger)trinityLog.Logger);
                        trinityLogger.Additivity = false;
                        trinityLogger.AddAppender(trinityAppender);
                    }
                }
            }
            catch (Exception ex)
            {
                _Logger.Error("Error setting up Trinity Logger:\n" + ex.ToString());
            }
        }
Пример #3
0
        public void CustomFilter()
        {
            FakeAWSAppender awsAppender;
            ILog            logger;
            Hierarchy       hierarchy     = (Hierarchy)LogManager.GetRepository();
            PatternLayout   patternLayout = new PatternLayout();

            patternLayout.ConversionPattern = "%logger %ndc - %message%newline";
            patternLayout.ActivateOptions();

            awsAppender        = new FakeAWSAppender();
            awsAppender.Layout = patternLayout;

            var filterName = new log4net.Filter.LoggerMatchFilter();

            filterName.LoggerToMatch = "badCategory";
            filterName.AcceptOnMatch = false;
            awsAppender.AddFilter(filterName);

            awsAppender.ActivateOptions();

            hierarchy.Root.AddAppender(awsAppender);

            hierarchy.Root.Level = Level.All;
            hierarchy.Configured = true;

            logger = LogManager.GetLogger("goodCategory");

            logger.Debug("trace");
            logger.Warn("warning");

            Assert.Equal(2, awsAppender._core.ReceivedMessages.Count);
            Assert.True(awsAppender._core.ReceivedMessages.ElementAt(1).Contains("warning"));
            string val;

            while (!awsAppender._core.ReceivedMessages.IsEmpty)
            {
                awsAppender._core.ReceivedMessages.TryDequeue(out val);
            }

            logger = LogManager.GetLogger("badCategory");

            logger.Debug("trace");
            logger.Warn("warning");

            Assert.Equal(0, awsAppender._core.ReceivedMessages.Count);
        }
Пример #4
0
        private static void ConfigureLogging()
        {
            var repository      = LogManager.GetRepository(Assembly.GetEntryAssembly());
            var consoleAppender = new log4net.Appender.ConsoleAppender()
            {
                Layout = new log4net.Layout.SimpleLayout(),
            };

            var enablingFilter = new log4net.Filter.LoggerMatchFilter()
            {
                LoggerToMatch = nameof(Muwesome),
                AcceptOnMatch = true,
            };

            consoleAppender.AddFilter(enablingFilter);
            consoleAppender.AddFilter(new log4net.Filter.DenyAllFilter());

            log4net.Config.BasicConfigurator.Configure(repository, consoleAppender);
        }
Пример #5
0
        public static void ConfigureCloudWatchLog4net()
        {
            Hierarchy hierarchy = (Hierarchy)LogManager.GetRepository(Assembly.GetEntryAssembly());
            //PatternLayout patternLayout = new PatternLayout
            //{
            //    ConversionPattern = "%-4timestamp [%thread] %-5level %logger %ndc - %message%newline"
            //};
            var splunkLayoutCW = new SplunkLayout()
            {
                LoggedProcessId = "LogTest3Rolling.LAB",
                TimestampFormat = "yyyy-MM-ddTHH:mm:ss.fffZ",
                WithTimeStamp   = false,
            };

            splunkLayoutCW.ActivateOptions();

            //You should be able create any appender and load it into the LogManager which
            //would allow you to drop the log4net.config
            AWSAppender cWappender = new AWSAppender
            {
                Name              = "StartupLogger",
                Layout            = splunkLayoutCW,
                BatchPushInterval = new TimeSpan(0, 0, 0, 5, 0),
                Threshold         = Level.Debug,
                // Set log group and region. Assume credentials will be found using the default profile or IAM credentials.
                LogGroup = "Logging.Startup",
                Region   = "us-east-1"
            };
            var cwFilter = new log4net.Filter.LoggerMatchFilter()
            {
                LoggerToMatch = "LogTest3.CloudWatchFilter",
                AcceptOnMatch = true
            };
            var non = new log4net.Filter.DenyAllFilter();

            non.ActivateOptions();
            cwFilter.ActivateOptions();
            cWappender.AddFilter(cwFilter);
            cWappender.AddFilter(non);
            cWappender.ActivateOptions();
            hierarchy.Root.AddAppender(cWappender);
        }
Пример #6
0
        public void DenyLoggerByName(string logger_name)
        {
            log.DebugFormat($"Logger '{logger_name}' will be denied for all existing appenders based on log4net.Appender.AppenderSkeleton. (But not for any appenders created in the future!)");
            var filter = new log4net.Filter.LoggerMatchFilter
            {
                LoggerToMatch = logger_name,
                AcceptOnMatch = false
            };

            filter.ActivateOptions();

            foreach (var repo in log4net.LogManager.GetAllRepositories())
            {
                foreach (var appender in repo.GetAppenders())
                {
                    var skel = appender as log4net.Appender.AppenderSkeleton;
                    skel?.AddFilter(filter);
                    skel?.ActivateOptions();
                }
            }
        }
Пример #7
0
        public static void ConfigureLog4net()
        {
            Hierarchy hierarchy      = (Hierarchy)LogManager.GetRepository(Assembly.GetEntryAssembly());
            var       splunkLayoutS3 = new SplunkLayout()
            {
                LoggedProcessId = "LogTest3Rolling.LAB",
                TimestampFormat = "yyyy-MM-ddTHH:mm:ss.fffZ",
                ObjectFormat    = "html",
                Header          = "<h1>Adding a Header???</h1>",
                Footer          = "<h3>Also a footer??? Oh la la</h3>"
            };

            splunkLayoutS3.ActivateOptions();
            var s3appender = new S3Appender()
            {
                Name               = "S3NoConfigAppender",
                Layout             = splunkLayoutS3,
                Threshold          = Level.Debug,
                BufferSize         = 5,
                LibraryLogFileName = "_Log_NoConfigError",
                BucketName         = "logtest2bucketpoc",
                LogDirectory       = "WhatIsThis",
                FilePrefix         = "S3Appender_html",
                FileExtension      = "html",
            };
            var htmlFilter = new log4net.Filter.LoggerMatchFilter()
            {
                LoggerToMatch = "LogTest3.HtmlFilter",
                AcceptOnMatch = true
            };
            var non = new log4net.Filter.DenyAllFilter();

            non.ActivateOptions();
            htmlFilter.ActivateOptions();
            s3appender.AddFilter(htmlFilter);
            s3appender.AddFilter(non);

            s3appender.ActivateOptions();
            hierarchy.Root.AddAppender(s3appender);
        }
Пример #8
0
        protected void Application_BeginRequest(object sender, EventArgs e)
        {
            log4net.Config.XmlConfigurator.Configure();
            var filter = new log4net.Filter.LoggerMatchFilter();
            filter.LoggerToMatch = "NHibernate.SQL";
            filter.AcceptOnMatch = true;

            var filterDeny = new log4net.Filter.DenyAllFilter();

            var appender = new log4net.Appender.DebugAppender
            {
                Layout = new log4net.Layout.SimpleLayout(),
                Name = "NHibernate.SQL",
                Threshold = log4net.Core.Level.Debug
            };

            appender.AddFilter(filter);
            appender.AddFilter(filterDeny);
            log4net.Config.BasicConfigurator.Configure(appender);
            //_sessionHelper.OpenSession("FHG");
            _sessionHelper.OpenSession("APL");
        }
Пример #9
0
        public static void SeparateOut(Type type)
        {
            if (type == null || separatedLoggers.ContainsKey(type))
            {
                return;
            }

            ILoggerRepository repository = LogManager.GetRepository();

            if (repository == null)
            {
                return;
            }

            IEnumerable <AppenderSkeleton> appenders = repository.GetAppenders().OfType <AppenderSkeleton>();

            if (appenders == null)
            {
                return;
            }

            ILog iLog = LogManager.GetLogger(type);

            separatedLoggers.Add(type, iLog);

            log4net.Filter.LoggerMatchFilter filter = new log4net.Filter.LoggerMatchFilter(),
                                             defaultLoggerFilter = new log4net.Filter.LoggerMatchFilter();
            filter.LoggerToMatch = iLog.Logger.Name;
            defaultLoggerFilter.AcceptOnMatch = filter.AcceptOnMatch = true;

            defaultLoggerFilter.LoggerToMatch = logger.Logger.Name;

            foreach (AppenderSkeleton appender in appenders)
            {
                List <log4net.Filter.IFilter> filters = new List <log4net.Filter.IFilter>();

                log4net.Filter.IFilter current = appender.FilterHead;

                if (current != null)
                {
                    filters.Add(current);
                    while ((current = current.Next) != null)
                    {
                        filters.Add(current);
                    }
                }

                appender.ClearFilters();
                appender.AddFilter(defaultLoggerFilter);

                foreach (log4net.Filter.IFilter f in filters)
                {
                    appender.AddFilter(f);
                }
            }

            RollingFileAppender separateAppender = new RollingFileAppender();

            separateAppender.File = Path.Combine(
                GlobalContext.Properties[Constants.Configuration.Logging.PATH_PROPERTY_NAME].ToNullSafeString(),
                type.FullName.Replace("+", "_") + ".log");
            separateAppender.AppendToFile       = true;
            separateAppender.SecurityContext    = log4net.Core.SecurityContextProvider.DefaultProvider.CreateSecurityContext(separateAppender);
            separateAppender.RollingStyle       = RollingFileAppender.RollingMode.Size;
            separateAppender.DatePattern        = ".yyyyMMdd";
            separateAppender.CountDirection     = 1;
            separateAppender.MaxSizeRollBackups = 7;
            separateAppender.MaximumFileSize    = "4MB";
            separateAppender.AddFilter(filter);
            log4net.Layout.PatternLayout layout = new log4net.Layout.PatternLayout();
            layout.Header            = "Date|Host|Environment|Thread|Level|Message\r\n";
            layout.ConversionPattern = "%date|%property{log4net:HostName}|%2thread|%-5level|%message%newline";
            separateAppender.Layout  = layout;
            log4net.Repository.Hierarchy.Hierarchy hierarchy = repository as log4net.Repository.Hierarchy.Hierarchy;
            hierarchy.Root.AddAppender(separateAppender);
            hierarchy.RaiseConfigurationChanged(EventArgs.Empty);
        }
Пример #10
0
        private static void SetupLogger()
        {
            try
            {
                if (trinityLog == null)
                {
                    lock (_loglock)
                    {
                        _Logger.Info("Setting up Trinity Logging");
                        int myPid = Process.GetCurrentProcess().Id;
                        DateTime startTime = Process.GetCurrentProcess().StartTime;

                        trinityLayout = new PatternLayout("%date{HH:mm:ss.fff} %-5level %logger{1} %m%n");
                        trinityLayout.ActivateOptions();

                        trinityFilter = new log4net.Filter.LoggerMatchFilter();
                        trinityFilter.LoggerToMatch = "Trinity";
                        trinityFilter.AcceptOnMatch = true;
                        trinityFilter.ActivateOptions();

                        Hierarchy h = (Hierarchy)LogManager.GetRepository();
                        var appenders = h.GetAppenders();

                        foreach (var appender in appenders)
                        {
                            if (appender is FileAppender)
                            {
                                trinityAppender = appender as FileAppender;
                            }
                        }

                        trinityAppender.Layout = trinityLayout;
                        //trinityAppender.AddFilter(trinityFilter);
                        trinityAppender.LockingModel = new FileAppender.ExclusiveLock();
                        //trinityAppender.LockingModel = new FileAppender.InterProcessLock();

                        trinityAppender.ActivateOptions();

                        trinityLog = LogManager.GetLogger("TrinityDebug");
                        trinityLogger = ((log4net.Repository.Hierarchy.Logger)trinityLog.Logger);
                        trinityLogger.Additivity = false;
                        trinityLogger.AddAppender(trinityAppender);
                    }
                }
            }
            catch (Exception ex)
            {
                _Logger.Error("Error setting up Trinity Logger:\n" + ex.ToString());
            }
        }
Пример #11
0
        /// <summary>
        /// Return a session from the SessionLibrary
        /// </summary>
        /// <param name="dbId"></param>
        /// <returns></returns>
        public static ISessionFactory GetSessionFactory(string dbId)
        {
            lock (factorylock)
            {
                if (!SessionFactoryLib.ContainsKey(dbId) || SessionFactoryLib[dbId] == null)
                {
                    if (HttpRuntime.AppDomainAppId == null)
                    {
                        _sessionContext = "thread_static";
                        _dbConfig = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None).GetSection("databases") as MyConfig.DatabaseRetrieverSection;
                    } else
                    {
                        _dbConfig = ConfigurationManager.GetSection("databases") as MyConfig.DatabaseRetrieverSection;
                    }
                    Type t = Type.GetType(GetDBMappingClass(dbId));
                    var configuration = Fluently.Configure().
                        Database(MsSqlConfiguration.MsSql2008.ConnectionString(GetDBConnectionString(dbId))
                        )
                        .CurrentSessionContext(_sessionContext);

                    log4net.Config.XmlConfigurator.Configure();
                    var filter = new log4net.Filter.LoggerMatchFilter();
                    filter.LoggerToMatch = "NHibernate.SQL";
                    filter.AcceptOnMatch = true;

                    var filterDeny = new log4net.Filter.DenyAllFilter();

                    var appender = new log4net.Appender.DebugAppender
                    {
                        Layout = new log4net.Layout.SimpleLayout(),
                        Name = "NHibernate.SQL",
                        Threshold = log4net.Core.Level.Debug
                    };

                    appender.AddFilter(filter);
                    appender.AddFilter(filterDeny);
                    log4net.Config.BasicConfigurator.Configure(appender);

                    ModelMapper _modelMapper = new ModelMapper();
                    if (dbId == "APL")
                    {
                        Assembly _assembly = Assembly.Load("APLBackendDB");
                        configuration.Mappings(m => m.FluentMappings.AddFromAssembly(_assembly));
                    }
                    else if (dbId == "FHG")
                    {
                        Assembly _assembly = Assembly.Load("APLFHGDB");
                        configuration.Mappings(m => m.FluentMappings.AddFromAssembly(_assembly));
                    }

                    SessionFactoryLib[dbId] = configuration.BuildSessionFactory();
                }
            }
            return SessionFactoryLib[dbId];
        }