示例#1
0
        public void SetLogLevel(LogLevel lv)
        {
            if (logLevel == lv)
            {
                return;
            }

            logLevel = lv;
            switch (lv)
            {
            case LogLevel.Debug: repo.Root.Level = Level.Debug; break;

            case LogLevel.Info: repo.Root.Level = Level.Info; break;

            case LogLevel.Warn: repo.Root.Level = Level.Warn; break;

            case LogLevel.Error: repo.Root.Level = Level.Error; break;

            case LogLevel.Fatal: repo.Root.Level = Level.Fatal; break;

            default:
                // OOPS
                break;
            }

            repo.RaiseConfigurationChanged(EventArgs.Empty);
        }
示例#2
0
 public void SetLogLevel(string logLevel)
 {
     log4net.Repository.Hierarchy.Hierarchy hierachy = (log4net.Repository.Hierarchy.Hierarchy)LogManager.GetRepository();
     hierachy.Threshold = GetLevel(logLevel);
     hierachy.RaiseConfigurationChanged(EventArgs.Empty);
     //log4net.Config.BasicConfigurator.Configure();
 }
示例#3
0
 static public void SetLoggingLevel(LogLevel level)
 {
     log4net.Core.Level[] levels = { log4net.Core.Level.Debug, log4net.Core.Level.Info, log4net.Core.Level.Error };
     log4net.Repository.Hierarchy.Hierarchy hier = (log4net.Repository.Hierarchy.Hierarchy)LogManager.GetRepository(Assembly.GetExecutingAssembly());
     hier.Root.Level = levels[(int)level];
     hier.RaiseConfigurationChanged(EventArgs.Empty);
     foreach (log4net.Core.ILogger logger in hier.GetCurrentLoggers())
     {
         ((log4net.Repository.Hierarchy.Logger)logger).Level = levels[(int)level];
     }
 }
示例#4
0
        /// <summary>
        /// Set the log level as specified and signal that a change has occurred.
        /// </summary>
        /// <param name="level">log4net.Core.Level; Level Enum</param>
        private static int setLevel(log4net.Core.Level logLevel)
        {
            log4net.Repository.Hierarchy.Hierarchy repository
                = ((log4net.Repository.Hierarchy.Hierarchy)LogManager.GetRepository(Assembly.GetEntryAssembly()));

            if (repository == null)
            {
                return(-1);
            }

            repository.Root.Level = logLevel;

            repository.Configured = true;
            repository.RaiseConfigurationChanged(EventArgs.Empty);

            return(lookupIntFromLogLevel(repository.Root.Level));
        }
示例#5
0
        public static void SetProperty(String propertyName, Object value)
        {
            if (string.IsNullOrEmpty(propertyName) || value == null)
            {
                return;
            }

            if (string.Equals(propertyName, Constants.Configuration.USER_NAME_PROPERTY))
            {
                value = "." + value.ToString().Replace(" ", "-").ToLowerInvariant();
            }

            log4net.GlobalContext.Properties[propertyName] = value;
            ILoggerRepository repository = LogManager.GetRepository();

            log4net.Repository.Hierarchy.Hierarchy hierarchy = repository as log4net.Repository.Hierarchy.Hierarchy;
            hierarchy.RaiseConfigurationChanged(EventArgs.Empty);
        }
示例#6
0
 public void SetLogFilePath(string LogFilePath)
 {
     log4net.Repository.Hierarchy.Hierarchy hierachy = (log4net.Repository.Hierarchy.Hierarchy)LogManager.GetRepository();
     foreach (IAppender appender in hierachy.GetAppenders())
     {
         if (appender is RollingFileAppender)
         {
             string filePath = Path.Combine(LogFilePath == null || LogFilePath == string.Empty ? Path.Combine(System.Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "PopMedNet", "PMN", "logs") : LogFilePath, "DataMartClient.txt");
             if (filePath.ToLower() != ((RollingFileAppender)appender).File.ToLower())
             {
                 ((RollingFileAppender)appender).File = filePath;
                 ((RollingFileAppender)appender).ActivateOptions();
                 hierachy.Configured = true;
                 hierachy.RaiseConfigurationChanged(EventArgs.Empty);
             }
         }
     }
 }
示例#7
0
        /// <summary>
        /// Configure log4net object
        /// </summary>
        private static void ConfigLog4Net()
        {
            // set log filename
            string logfilename = Environment.GetFolderPath(System.Environment.SpecialFolder.Personal);

            logfilename += System.IO.Path.DirectorySeparatorChar;
            logfilename += System.Reflection.Assembly.GetExecutingAssembly().GetName().Name + ".log";

            LogFilePath = logfilename;

            // attach to repository hierarchy
            log4net.Repository.Hierarchy.Hierarchy repository = LogManager.GetRepository() as log4net.Repository.Hierarchy.Hierarchy;

            // check for logging into file
            if (LogToFile)
            {
                // add log file appender
                log4net.Appender.RollingFileAppender fileappender = new log4net.Appender.RollingFileAppender();
                fileappender.Layout             = new log4net.Layout.PatternLayout("%-5level %date{yyyy-MM-dd HH:mm:ss,fff} [%thread] %message (%file:%line)%newline");
                fileappender.File               = logfilename;
                fileappender.MaxSizeRollBackups = 10;
                fileappender.MaximumFileSize    = "10MB";
                fileappender.AppendToFile       = true;
                fileappender.ActivateOptions();
                repository.Root.AddAppender(fileappender);
            }

            // check for logging into console
            if (LogToConsole)
            {
                // add console appender
                log4net.Appender.ConsoleAppender consoleappender = new log4net.Appender.ConsoleAppender();
                consoleappender.Layout = new log4net.Layout.PatternLayout("%-5level %date{HH:mm:ss} %message%newline");
                consoleappender.ActivateOptions();
                repository.Root.AddAppender(consoleappender);
            }

            // set to log all events
            repository.Root.Level = log4net.Core.Level.All;
            repository.Configured = true;
            repository.RaiseConfigurationChanged(EventArgs.Empty);
        }
示例#8
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);
        }