示例#1
0
        public static void Initialize(ILoggerRepository loggerRepository, ILog4NetConfiguration log4NetConfiguration, string applicationInstallDirectory = null)
        {
            if (loggerRepository == null)
            {
                throw new ArgumentNullException(nameof(loggerRepository));
            }

            if (log4NetConfiguration == null)
            {
                throw new ArgumentNullException(nameof(log4NetConfiguration));
            }

            GlobalContext.Properties["COMPONENT-NAME"] = log4NetConfiguration.ComponentName;

            if (string.IsNullOrWhiteSpace(applicationInstallDirectory) ||
                !Directory.Exists(applicationInstallDirectory))
            {
                applicationInstallDirectory = new FileInfo(Assembly.GetExecutingAssembly().Location).DirectoryName;
            }

            string log4netConfigPath = Path.Combine(applicationInstallDirectory, log4NetConfiguration.ConfigurationFileName);

            // If we're debugging, and the log4net file doesn't exist in the root folder, check in the 'bin' folder.
            if (!File.Exists(log4netConfigPath))
            {
                log4netConfigPath = Path.Combine(applicationInstallDirectory, "bin", log4NetConfiguration.ConfigurationFileName);
            }

            var logConfigFile = new FileInfo(log4netConfigPath);

            if (!logConfigFile.Exists)
            {
                throw new ArgumentException(string.Format(
                                                Resources.LoggingConfigurationFileNotFoundError,
                                                log4NetConfiguration.ConfigurationFileName,
                                                applicationInstallDirectory));
            }

            XmlConfigurator.ConfigureAndWatch(loggerRepository, logConfigFile);
        }
示例#2
0
 public static void Initialize(ILog4NetConfiguration log4NetConfiguration, string applicationInstallDirectory = null)
 {
     Initialize(LogManager.CreateRepository(Assembly.GetEntryAssembly(), typeof(Hierarchy)), log4NetConfiguration, applicationInstallDirectory);
 }