Пример #1
0
        /// <summary>
        /// 使用文本记录异常日志
        /// </summary>
        /// <Author>Ryanding</Author>
        /// <date>2011-05-01</date>
        public static void LoadFileAppender()
        {
            string currentPath = AppDomain.CurrentDomain.BaseDirectory;
            string txtLogPath  = string.Empty;
            string iisBinPath  = AppDomain.CurrentDomain.RelativeSearchPath;

            if (!string.IsNullOrEmpty(iisBinPath))
            {
                txtLogPath = CreateDirectory(iisBinPath);// Path.Combine(iisBinPath, "ErrorLog.txt");
            }
            else
            {
                txtLogPath = CreateDirectory(currentPath);// Path.Combine(currentPath, "ErrorLog.txt");
            }
            log4net.Repository.Hierarchy.Hierarchy hier =
                log4net.LogManager.GetLoggerRepository() as log4net.Repository.Hierarchy.Hierarchy;

            FileAppender fileAppender = new FileAppender();

            fileAppender.Name         = "LogFileAppender";
            fileAppender.File         = txtLogPath;
            fileAppender.AppendToFile = true;

            PatternLayout patternLayout = new PatternLayout();

            patternLayout.ConversionPattern = "记录时间:%date LOG描述:%message%newline";
            patternLayout.ActivateOptions();
            fileAppender.Layout = patternLayout;

            //选择UTF8编码,确保中文不乱码。
            fileAppender.Encoding = Encoding.UTF8;

            fileAppender.ActivateOptions();
            BasicConfigurator.Configure(fileAppender);
        }
Пример #2
0
        public static bool ChangeLogFileLocation1(string NewFileName)
        {
            XmlConfigurator.Configure();
            log4net.Repository.Hierarchy.Hierarchy h =
                (log4net.Repository.Hierarchy.Hierarchy)LogManager.GetRepository();
            foreach (IAppender a in h.Root.Appenders)
            {
                if (a is FileAppender)
                {
                    FileAppender fa = (FileAppender)a;
                    // Programmatically set this to the desired location here
                    string logFileLocation = NewFileName;

                    // Uncomment the lines below if you want to retain the base file name
                    // and change the folder name...
                    //FileInfo fileInfo = new FileInfo(fa.File);
                    //logFileLocation = string.Format(@"C:\MySpecialFolder\{0}", fileInfo.Name);

                    fa.File = logFileLocation;
                    fa.ActivateOptions();
                    break;
                }
            }
            return(true);
        }
Пример #3
0
        public static string GetLogLocation()
        {
            string LogFileName = HttpContext.Current.Server.MapPath("~/log4net.config");
            //XmlConfigurator.Configure();
            FileInfo mFileInfo = new FileInfo(LogFileName);

            XmlConfigurator.ConfigureAndWatch(mFileInfo);
            log4net.Repository.Hierarchy.Hierarchy h = (log4net.Repository.Hierarchy.Hierarchy)LogManager.GetRepository();

            string LogLocationPath = "";

            foreach (IAppender a in h.Root.Appenders)
            {
                if (a is FileAppender)
                {
                    FileAppender fa       = (FileAppender)a;
                    string       sNowDate = DateTime.Now.ToLongDateString();
                    // Programmatically set this to the desired location here
                    string FileLocationinWebConfig = fa.File;
                    LogLocationPath = FileLocationinWebConfig;
                    break;
                }
            }
            return(LogLocationPath);
        }
Пример #4
0
        public virtual void InitializeLogger()
        {
            DateTime _DateTime         = DateTime.Now;
            string   _LoggerFolderPath = String.Format(@"{0}\{1:D4}\{2:D2}\{3:D2}\", LogDefaultPath, _DateTime.Year, _DateTime.Month, _DateTime.Day);

            log4net.Repository.Hierarchy.Hierarchy _Hierarchy = (log4net.Repository.Hierarchy.Hierarchy)log4net.LogManager.GetRepository();
            _Hierarchy.Configured = true;

            log4net.Appender.RollingFileAppender _RollingAppender = new log4net.Appender.RollingFileAppender();
            _RollingAppender.File              = LogDefaultPath + @"\";
            _RollingAppender.AppendToFile      = true;
            _RollingAppender.RollingStyle      = log4net.Appender.RollingFileAppender.RollingMode.Date;
            _RollingAppender.LockingModel      = new log4net.Appender.FileAppender.MinimalLock();
            _RollingAppender.StaticLogFileName = false;
            _RollingAppender.DatePattern       = "yyyy\\\\MM\\\\dd\\\\\"LogFile_\"yyyyMMdd\".log\""; // 날짜가 지나간 경우 이전 로그에 붙을 이름 구성
            log4net.Layout.PatternLayout layout = new log4net.Layout.PatternLayout("%d{yyyy/MM/dd-HH:mm:ss:ffff} [%-5level] : %message%newline");
            _RollingAppender.Layout = layout;
            _RollingAppender.ActivateOptions();

            _Hierarchy.Root.RemoveAllAppenders();
            _Hierarchy.Root.AddAppender(_RollingAppender);
            _Hierarchy.Root.Level = log4net.Core.Level.All;

            LogFolderPath = LogDefaultPath;
        }
Пример #5
0
        /// <summary>
        /// For engine use only! Not thread safe
        /// </summary>
        /// <param name="prefix"></param>
        public void SetLogFilePrefix(string prefix)
        {
            Info(typeof(Logger).Name, "SetLogFilePrefix", "Changing log file -> Adding prefix: '" + prefix + "'");
            try
            {
                log4net.Repository.Hierarchy.Hierarchy h =
                    (log4net.Repository.Hierarchy.Hierarchy)LogManager.GetRepository();
                foreach (IAppender a in h.Root.Appenders)
                {
                    if (a is FileAppender)
                    {
                        FileAppender fa = (FileAppender)a;

                        FileInfo fileInfo    = new FileInfo(fa.File);
                        var      logFileName = string.Format("{0}-{1}", prefix, fileInfo.Name);

                        fa.File = Path.Combine(fileInfo.DirectoryName, logFileName);
                        fa.ActivateOptions();
                        break;
                    }
                    else if (a is SmtpAppender)
                    {
                        SmtpAppender sa = (SmtpAppender)a;
                        sa.Subject = sa.Subject + " " + prefix;
                        sa.ActivateOptions();
                    }
                }
            }
            catch (Exception ex)
            {
                Error(typeof(Logger).Name, "SetLogFilePrefix", ex, "Prefix not set - log entries are probably in the base log file");
            }
        }
Пример #6
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();
 }
Пример #7
0
        } //eof method

        /// <summary>
        /// Activates debug level
        /// </summary>
        /// <sourceurl>http://geekswithblogs.net/rakker/archive/2007/08/22/114900.aspx</sourceurl>
        private void SetLogingLevel(string strLogLevel)
        {
            this.ConfigureLogging();
            string strChecker = "WARN_INFO_DEBUG_ERROR_FATAL";

            if (String.IsNullOrEmpty(strLogLevel) == true || strChecker.Contains(strLogLevel) == false)
            {
                throw new ArgumentOutOfRangeException(" The strLogLevel should be set to WARN , INFO , DEBUG ,");
            }



            log4net.Repository.ILoggerRepository[] repositories = log4net.LogManager.GetAllRepositories();

            //Configure all loggers to be at the debug level.
            foreach (log4net.Repository.ILoggerRepository repository in repositories)
            {
                repository.Threshold = repository.LevelMap[strLogLevel];
                log4net.Repository.Hierarchy.Hierarchy hier = (log4net.Repository.Hierarchy.Hierarchy)repository;
                log4net.Core.ILogger[] loggers = hier.GetCurrentLoggers();
                foreach (log4net.Core.ILogger logger in loggers)
                {
                    ((log4net.Repository.Hierarchy.Logger)logger).Level = hier.LevelMap[strLogLevel];
                }
            }

            //Configure the root logger.
            log4net.Repository.Hierarchy.Hierarchy h          = (log4net.Repository.Hierarchy.Hierarchy)log4net.LogManager.GetRepository();
            log4net.Repository.Hierarchy.Logger    rootLogger = h.Root;
            rootLogger.Level = h.LevelMap[strLogLevel];
        }
Пример #8
0
        /// <summary>
        /// http://forums.asp.net/t/1969159.aspx?How+to+change+log+level+for+log4net+from+code+behind+during+the+application+up+and+running+
        /// </summary>
        /// <param name="logLevel"></param>
        private void SetLogLevelTo(string logLevel)
        {
            try
            {
                log4net.Repository.ILoggerRepository[] repositories = log4net.LogManager.GetAllRepositories();

                //Configure all loggers to be at the debug level.
                foreach (log4net.Repository.ILoggerRepository repository in repositories)
                {
                    repository.Threshold = repository.LevelMap[logLevel];
                    log4net.Repository.Hierarchy.Hierarchy hier = (log4net.Repository.Hierarchy.Hierarchy)repository;
                    log4net.Core.ILogger[] loggers = hier.GetCurrentLoggers();
                    foreach (log4net.Core.ILogger logger in loggers)
                    {
                        ((log4net.Repository.Hierarchy.Logger)logger).Level = hier.LevelMap[logLevel];
                    }
                }

                //Configure the root logger.
                log4net.Repository.Hierarchy.Hierarchy h          = (log4net.Repository.Hierarchy.Hierarchy)log4net.LogManager.GetRepository();
                log4net.Repository.Hierarchy.Logger    rootLogger = h.Root;
                rootLogger.Level = h.LevelMap[logLevel];
            }
            catch (Exception ex)
            {
                Console.Error.WriteLine("ERROR CHANGING LOG LEVEL {0}", ex.Message);
            }
        }
Пример #9
0
 private static void ChangeFileLog(string _Project)
 {
     try
     {
         XmlConfigurator.Configure();
         log4net.Repository.Hierarchy.Hierarchy h = (log4net.Repository.Hierarchy.Hierarchy)LogManager.GetRepository();
         foreach (IAppender a in h.Root.Appenders)
         {
             if (a is FileAppender)
             {
                 FileAppender fa       = (FileAppender)a;
                 string       sNowDate = DateTime.Now.ToString("yyyyMMdd");
                 // Programmatically set this to the desired location here
                 string FileLocationinWebConfig = fa.File;
                 string logFileLocation         = FileLocationinWebConfig + @"\" + sNowDate + @"\" + _Project + ".txt";
                 if (System.IO.Directory.Exists(FileLocationinWebConfig + @"\" + sNowDate + @"\"))
                 {
                     System.IO.Directory.CreateDirectory(FileLocationinWebConfig + @"\" + sNowDate + @"\");
                 }
                 fa.File = logFileLocation;
                 fa.ActivateOptions();
                 break;
             }
         }
     }
     catch
     {
     }
 }
Пример #10
0
 private void FrmLog_Load(object sender, EventArgs e)
 {
     log4net.Repository.Hierarchy.Hierarchy hierarchy = LogManager.GetRepository() as log4net.Repository.Hierarchy.Hierarchy;
     if (hierarchy != null)
     {
         hierarchy.Root.AddAppender(new RichEditAppender(this.richTextBox_Log, 1000, 50, 5));
     }
 }
Пример #11
0
        /// <summary>
        /// 获取日志设置
        /// </summary>
        public static ILog GetCustomLogger(string loggerName, string loggerSource, string category, bool additivity = false)
        {
            return(loggerContainer.GetOrAdd(loggerName + (category ?? "") + loggerSource, delegate(string name)
            {
                RollingFileAppender newAppender = null;
                TWReadParameterAppender appender = null;

                if (appenderContainer.ContainsKey(loggerName))
                {
                    appender = appenderContainer[loggerName];

                    // 判断日志路径
                    string filePath = appender.File;
                    if (filePath != null && filePath.EndsWith("\\"))
                    {
                        if (string.IsNullOrEmpty(category))
                        {
                            filePath = string.Format(@"{0}\{1}\{2}\{3}\{4}\{5}.txt", filePath, loggerName, loggerSource,
                                                     DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day.ToString().PadLeft(2, '0'));
                        }
                        else
                        {
                            filePath = string.Format(@"{0}\{1}\{2}\{3}\{4}\{5}\{6}.txt", filePath, loggerName, category, loggerSource,
                                                     DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day.ToString().PadLeft(2, '0'));
                        }
                    }

                    newAppender = GetNewFileApender(loggerName,
                                                    filePath,
                                                    appender.MaxSizeRollBackups,
                                                    appender.AppendToFile,
                                                    true,
                                                    appender.MaximumFileSize,
                                                    RollingFileAppender.RollingMode.Composite,
                                                    appender.DatePattern,
                                                    appender.LayoutPattern);
                }
                else
                {
                    newAppender = GetNewFileApender(loggerName, GetFile(category, loggerName), MAX_SIZE_ROLL_BACKUPS, true, true,
                                                    MAXIMUM_FILE_SIZE, RollingFileAppender.RollingMode.Composite, DATE_PATTERN, LAYOUT_PATTERN);
                }

                log4net.Repository.Hierarchy.Hierarchy repository = (log4net.Repository.Hierarchy.Hierarchy)LogManager.GetRepository();
                log4net.Repository.Hierarchy.Logger logger = repository.LoggerFactory.CreateLogger(repository, loggerName);
                logger.Hierarchy = repository;
                logger.Parent = repository.Root;
                logger.Level = GetLoggerLevel(appender == null ? LEVEL : appender.Level);
                logger.Additivity = additivity;
                logger.AddAppender(newAppender);
                logger.Repository.Configured = true;
                return new LogImpl(logger);
            }));
        }
Пример #12
0
        /// <summary>
        /// This method creates the loggers
        /// </summary>
        /// <param name="fileAppender"></param>
        /// <param name="loggerName"></param>
        private void CreateLogger(log4net.Appender.FileAppender fileAppender, string loggerName)
        {
            log4net.Repository.Hierarchy.Hierarchy hierarchy = (log4net.Repository.Hierarchy.Hierarchy)log4net.LogManager.GetRepository();
            log4net.Repository.Hierarchy.Logger    logger    = (log4net.Repository.Hierarchy.Logger)hierarchy.GetLogger(loggerName);
            if (logger.GetAppender(fileAppender.Name) == null)
            {
                logger.AddAppender(fileAppender);
            }

            hierarchy.Configured = true;
        }
Пример #13
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];
     }
 }
Пример #14
0
        public ActionResult Diagnostics()
        {
            var smtp = (SmtpSection)ConfigurationManager.GetSection("system.net/mailSettings/smtp");

            var model = new DiagnosticsDTO
            {
                ServerName   = DataContext.Database.Connection.Database,
                Theme        = WebConfigurationManager.AppSettings["CurrentTheme"],
                SSOURL       = WebConfigurationManager.AppSettings["SsoUrl"],
                ServiceUrl   = WebConfigurationManager.AppSettings["ServiceUrl"],
                ResourcesURL = WebConfigurationManager.AppSettings["ResourceUrl"],
                MailSettings = new MailSettingsDTO
                {
                    DeliveryMethod = smtp.DeliveryMethod.ToString(),
                    FromAddress    = smtp.From.ToString(),
                    Server         = smtp.Network.Host
                },
            };

            log4net.Repository.Hierarchy.Hierarchy hierachy = (log4net.Repository.Hierarchy.Hierarchy)LogManager.GetRepository();
            foreach (IAppender appender in hierachy.GetAppenders())
            {
                if (appender is RollingFileAppender)
                {
                    model.Log4Net = new Log4NetConfig
                    {
                        FileLocation   = ((RollingFileAppender)appender).File,
                        LogPattern     = ((RollingFileAppender)appender).DatePattern,
                        FileMaxSize    = ((RollingFileAppender)appender).MaximumFileSize,
                        MaxFilesToKeep = ((RollingFileAppender)appender).MaxSizeRollBackups.ToString()
                    };
                }
            }


            AppDomain currentDomain = AppDomain.CurrentDomain;

            Assembly[]          assems    = currentDomain.GetAssemblies();
            IList <AssemblyDTO> assemList = new List <AssemblyDTO>();

            foreach (var ass in assems)
            {
                assemList.Add(new AssemblyDTO
                {
                    AssemblyName    = ass.GetName().Name,
                    AssemblyVersion = ass.GetName().Version.ToString()
                });
            }

            model.Assemblies = assemList;

            return(View(model));
        }
Пример #15
0
 public static void RemoveAppender(string name)
 {
     foreach (var appender in LogManager.GetRepository().GetAppenders())
     {
         if (appender.Name.Equals(name))
         {
             log4net.Repository.Hierarchy.Hierarchy h = (log4net.Repository.Hierarchy.Hierarchy)LogManager.GetRepository();
             h.Root.RemoveAppender(appender);
             return;
         }
     }
 }
Пример #16
0
        /// <summary>
        /// Turns on all logging for the system.
        /// </summary>
        private void TurnOnLogging()
        {
            log4net.Repository.ILoggerRepository[] repositories = log4net.LogManager.GetAllRepositories();
            IList <IAppender> toRemove;

            // Configure all loggers to be at the debug level.
            foreach (log4net.Repository.ILoggerRepository repository in repositories)
            {
                repository.Threshold = repository.LevelMap["DEBUG"];
                log4net.Repository.Hierarchy.Hierarchy hier = (log4net.Repository.Hierarchy.Hierarchy)repository;
                log4net.Core.ILogger[] loggers = hier.GetCurrentLoggers();
                foreach (log4net.Core.ILogger logger in loggers)
                {
                    log4net.Repository.Hierarchy.Logger log = (log4net.Repository.Hierarchy.Logger)logger;
                    log.Level = hier.LevelMap["DEBUG"];
                    log.AddAppender(new NullAppender());

                    toRemove = new List <IAppender>();
                    foreach (var appender in log.Appenders)
                    {
                        if (appender.GetType() != typeof(NullAppender))
                        {
                            toRemove.Add(appender);
                        }
                    }

                    foreach (IAppender appender in toRemove)
                    {
                        log.RemoveAppender(appender);
                    }
                }
            }

            // Configure the root logger.
            log4net.Repository.Hierarchy.Hierarchy h          = (log4net.Repository.Hierarchy.Hierarchy)log4net.LogManager.GetRepository();
            log4net.Repository.Hierarchy.Logger    rootLogger = h.Root;
            rootLogger.Level = h.LevelMap["DEBUG"];
            rootLogger.AddAppender(new NullAppender());

            toRemove = new List <IAppender>();
            foreach (var appender in rootLogger.Appenders)
            {
                if (appender.GetType() != typeof(NullAppender))
                {
                    toRemove.Add(appender);
                }
            }

            foreach (IAppender appender in toRemove)
            {
                rootLogger.RemoveAppender(appender);
            }
        }
Пример #17
0
        public static int GetLogLevel()
        {
            log4net.Repository.Hierarchy.Hierarchy repository
                = ((log4net.Repository.Hierarchy.Hierarchy)LogManager.GetRepository(Assembly.GetEntryAssembly()));

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

            return(lookupIntFromLogLevel(repository.Root.Level));
        }
Пример #18
0
 public static void SetLogLevel(log4net.Core.Level logLevel, bool force)
 {
     log4net.Repository.ILoggerRepository[] repositories = log4net.LogManager.GetAllRepositories();
     foreach (log4net.Repository.ILoggerRepository repository in repositories)
     {
         log4net.Repository.Hierarchy.Hierarchy hierarchy = repository as log4net.Repository.Hierarchy.Hierarchy;
         if (hierarchy.Root.Level > logLevel || force)
         {
             hierarchy.Root.Level = logLevel;
         }
     }
 }
Пример #19
0
        /// <summary>
        /// Sets the root of the log4net hierarchy to the level specified
        /// </summary>
        /// <param name="level">the level to which to set the root</param>
        private static void SetRootLevel(log4net.Core.Level level)
        {
            if (level == null)
            {
                return;
            }

            log4net.Repository.Hierarchy.Hierarchy hierarchy = log4net.LogManager.GetRepository() as log4net.Repository.Hierarchy.Hierarchy;
            if (null != hierarchy)
            {
                lock (hierarchy) { hierarchy.Root.Level = level; }
            }
        }
Пример #20
0
        public void SubmitOK()
        {
            //For root
            log4net.Repository.Hierarchy.Hierarchy h          = (log4net.Repository.Hierarchy.Hierarchy)log4net.LogManager.GetRepository();
            log4net.Repository.Hierarchy.Logger    rootLogger = h.Root;
            rootLogger.Level = h.LevelMap[SelectedRootLogLevel.Level.ToString()];

            //For custom logger
            log4net.Repository.ILoggerRepository   log4repo = log4net.LogManager.GetRepository();
            log4net.Repository.Hierarchy.Hierarchy log4hier = (log4net.Repository.Hierarchy.Hierarchy)log4repo;
            log4net.Core.ILogger logger4 = log4hier.GetCurrentLoggers().First(x => x.Name == "Logger4");
            ((log4net.Repository.Hierarchy.Logger)logger4).Level = log4hier.LevelMap[SelectedLog4LogLevel.Level.ToString()];
        }
Пример #21
0
 static void SetLogFileName(string newName)
 {
     log4net.Repository.Hierarchy.Hierarchy h = (log4net.Repository.Hierarchy.Hierarchy)LogManager.GetRepository();
     foreach (IAppender a in h.Root.Appenders)
     {
         if (a is FileAppender)
         {
             FileAppender fa = (FileAppender)a;
             fa.File = newName;
             fa.ActivateOptions();
             break;
         }
     }
 }
Пример #22
0
        private void SetLoggingPath(string filePath)
        {
            log4net.Repository.Hierarchy.Hierarchy h = (log4net.Repository.Hierarchy.Hierarchy)LogManager.GetRepository();
            foreach (IAppender a in h.Root.Appenders)
            {
                if (a is FileAppender)
                {
                    FileAppender fa = (FileAppender)a;

                    fa.File = filePath;
                    fa.ActivateOptions();
                    break;
                }
            }
        }
 public static void ConfigureLogFile(string logFileLocation)
 {
     XmlConfigurator.Configure();
     log4net.Repository.Hierarchy.Hierarchy h =
         (log4net.Repository.Hierarchy.Hierarchy)LogManager.GetRepository();
     foreach (IAppender a in h.Root.Appenders)
     {
         if (a is FileAppender)
         {
             FileAppender fa = (FileAppender)a;
             fa.File = logFileLocation;
             fa.ActivateOptions();
             break;
         }
     }
 }
Пример #24
0
        static Logger()
        {
            //
            // TODO: Add constructor logic here
            //
            Trace.WriteLine("Logger contructor");

            connstring = ConfigurationManager.ConnectionStrings["SqlConn"].ConnectionString;
            if (connstring.Length == 0)
            {
                Trace.WriteLine("Errore impostazione connection string DB LOG", LoggerName);
                return;
            }


            log4net.Config.XmlConfigurator.Configure();

            log4net.Repository.Hierarchy.Hierarchy hier =
                log4net.LogManager.GetRepository() as log4net.Repository.Hierarchy.Hierarchy;

            if (hier != null)
            {
                //get ADONetAppender
                log4net.Appender.AdoNetAppender adoAppender =
                    (log4net.Appender.AdoNetAppender)hier.GetLogger(LoggerName,
                                                                    hier.LoggerFactory).GetAppender("AdoNetAppender");
                if (adoAppender != null)
                {
                    adoAppender.ConnectionString =
                        connstring;
                    adoAppender.ActivateOptions(); //refresh settings of appender
                }
            }

            log_level = ConfigurationManager.AppSettings["log_level"] + "";

            try
            {
                DefaultLogLevel = (EventLogEntryType)Enum.Parse(typeof(EventLogEntryType), log_level, true);
            }
            catch (Exception ex)
            {
                Trace.WriteLine(ex.ToString(), LoggerName);
            }

            cs = (ConfigurationManager.AppSettings["log_cat"] + string.Empty);
        }
Пример #25
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));
        }
Пример #26
0
        /// <summary>
        /// Loads all the assemblies found in the specified adapter package.
        /// </summary>
        /// <param name="packageIdentifierAndVersion">The request type package identifier + request adapter version.</param>
        /// <returns></returns>
        bool Load(string packageIdentifierAndVersion)
        {
            _appDomainName = packageIdentifierAndVersion;
            _packagePath   = Path.Combine(RootFolder, packageIdentifierAndVersion + ".zip");
            log.Debug("Begin loading of " + _packagePath);

            if (!File.Exists(_packagePath))
            {
                throw new FileNotFoundException("The file: " + packageIdentifierAndVersion + ".zip was not found in " + RootFolder + ".");
            }

            log.Debug("Creating plugin appdomain named: " + _appDomainName);
            //create the appdomain, base directory should be set to the packages base directory which should have the assembly containing the proxy in it
            AppDomainSetup setupInfo = new AppDomainSetup();

            setupInfo.ApplicationBase   = RootFolder;
            setupInfo.ApplicationName   = _appDomainName;
            setupInfo.ConfigurationFile = AppDomain.CurrentDomain.SetupInformation.ConfigurationFile;
            _appDomain = AppDomain.CreateDomain(packageIdentifierAndVersion, AppDomain.CurrentDomain.Evidence, setupInfo);
            log.Debug("Finished creating AppDomain: " + packageIdentifierAndVersion);

            try
            {
                log4net.Repository.Hierarchy.Hierarchy hierachy = (log4net.Repository.Hierarchy.Hierarchy)LogManager.GetRepository();
                log.Debug("Creating domain proxy for AppDomain: " + _appDomainName);
                //create the domain proxy
                Type proxyType = typeof(AssemblyLoadProxy);
                _loadProxy = (AssemblyLoadProxy)_appDomain.CreateInstanceFrom(proxyType.Assembly.Location, proxyType.FullName).Unwrap();

                _loadProxySponsor = new LifetimeSponsor(_loadProxy);

                //load the domain proxy with the assemblies for the package
                log.Debug("Loading the package: " + _packagePath + " into the AppDomain: " + _appDomainName);
                _loadProxy.LoadPackage(_packagePath);

                log.Debug("Initializing cross-domain logging for AppDomain: " + _appDomainName);
                _loadProxy.InitializeLogging(new Logging.CrossDomainParentAppender(), hierachy.Threshold);
            }
            catch (Exception ex)
            {
                log.Error("An error occurred initializing the domain proxy for AppDomain: " + _appDomainName, ex);
                return(false);
            }

            return(true);
        }
Пример #27
0
        public static void AddAppenderToAllLoggersEvent(EventHandler <log4net.Core.LoggingEvent> onlogmessage)
        {
            foreach (var appender in LogManager.GetRepository().GetAppenders())
            {
                if (appender.Name.Equals("MemoryAppender"))
                {
                    return;
                }
            }

            var app = new MemoryAppenderWithEvents();

            app.UpdatedEvent += onlogmessage;

            log4net.Repository.Hierarchy.Hierarchy h = (log4net.Repository.Hierarchy.Hierarchy)LogManager.GetRepository();
            h.Root.AddAppender(app);
        }
Пример #28
0
 private void SetFileName()
 {
     XmlConfigurator.Configure();
     log4net.Repository.Hierarchy.Hierarchy _hierarchy = (log4net.Repository.Hierarchy.Hierarchy)LogManager.GetRepository();
     foreach (IAppender _appender in _hierarchy.Root.Appenders)
     {
         if (_appender is FileAppender)
         {
             FileAppender _fileAppender    = (FileAppender)_appender;
             string       _logFileLocation = System.Reflection.Assembly.GetExecutingAssembly().CodeBase;
             _logFileLocation   = System.IO.Path.GetDirectoryName(_logFileLocation);
             _fileAppender.File = _fileAppender.File + "Logger.log";
             _fileAppender.ActivateOptions(); //for additional options
             break;
         }
     }
 }
Пример #29
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);
        }
Пример #30
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);
             }
         }
     }
 }
Пример #31
0
		private void SetupRepository()
		{
			m_hierarchy = new Repository.Hierarchy.Hierarchy();

			m_countingAppender = new CountingAppender();
			m_countingAppender.ActivateOptions();

			m_bufferingForwardingAppender = new BufferingForwardingAppender();
			m_bufferingForwardingAppender.AddAppender(m_countingAppender);

			m_bufferingForwardingAppender.BufferSize = 0;
			m_bufferingForwardingAppender.ClearFilters();
			m_bufferingForwardingAppender.Evaluator = null;
			m_bufferingForwardingAppender.Fix = FixFlags.Partial;
			m_bufferingForwardingAppender.Lossy = false;
			m_bufferingForwardingAppender.LossyEvaluator = null;
			m_bufferingForwardingAppender.Threshold = Level.All;

			m_bufferingForwardingAppender.ActivateOptions();

			log4net.Config.BasicConfigurator.Configure(m_hierarchy, m_bufferingForwardingAppender);
		}