/// <summary>
        /// Constructor accepting configuration properties and an arbitrary
        /// <see cref="ILog4NetRuntime"/> instance.
        /// </summary>
        /// <param name="properties">configuration properties, see <see cref="Log4NetLoggerFactoryAdapter"/> for more.</param>
        /// <param name="runtime">a log4net runtime adapter</param>
        protected Log4NetLoggerFactoryAdapter(NameValueCollection properties, ILog4NetRuntime runtime)
            : base(true)
        {
            if (runtime == null)
            {
                throw new ArgumentNullException("runtime");
            }
            _runtime = runtime;

            // parse config properties
            string configType = ArgUtils.GetValue(properties, "configType", string.Empty).ToUpper();
            string configFile = ArgUtils.GetValue(properties, "configFile", string.Empty);

            // app-relative path?
            if (configFile.StartsWith("~/") || configFile.StartsWith("~\\"))
            {
                configFile = string.Format("{0}/{1}", AppDomain.CurrentDomain.BaseDirectory.TrimEnd('/', '\\'), configFile.Substring(2));
            }

            if (configType == "FILE" || configType == "FILE-WATCH")
            {
                if (configFile == string.Empty)
                {
                    throw new ConfigurationException("Configuration property 'configFile' must be set for log4Net configuration of type 'FILE' or 'FILE-WATCH'.");
                }

                if (!File.Exists(configFile))
                {
                    throw new ConfigurationException("log4net configuration file '" + configFile + "' does not exists");
                }
            }

            switch (configType)
            {
            case "INLINE":
                _runtime.XmlConfiguratorConfigure();
                break;

            case "FILE":
                _runtime.XmlConfiguratorConfigure(configFile);
                break;

            case "FILE-WATCH":
                _runtime.XmlConfiguratorConfigureAndWatch(configFile);
                break;

            case "EXTERNAL":
                // Log4net will be configured outside of Common.Logging
                break;

            default:
                _runtime.BasicConfiguratorConfigure();
                break;
            }
        }
        /// <summary>
        /// Constructor accepting configuration properties and an arbitrary 
        /// <see cref="ILog4NetRuntime"/> instance.
        /// </summary>
        /// <param name="properties">configuration properties, see <see cref="Log4NetLoggerFactoryAdapter"/> for more.</param>
        /// <param name="runtime">a log4net runtime adapter</param>
        protected Log4NetLoggerFactoryAdapter(NameValueCollection properties, ILog4NetRuntime runtime)
            : base(true)
        {
            if (runtime == null)
            {
                throw new ArgumentNullException("runtime");
            }
            _runtime = runtime;

            // parse config properties
            var configType = properties.GetValue("configType", string.Empty).ToUpper();
            var configFile = properties.GetValue("configFile", string.Empty);

            // app-relative path?
            if (configFile.StartsWith("~/") || configFile.StartsWith("~\\"))
            {
                configFile = string.Format("{0}/{1}", AppDomain.CurrentDomain.BaseDirectory.TrimEnd('/', '\\'), configFile.Substring(2));
            }

            if (configType == "FILE" || configType == "FILE-WATCH")
            {
                if (configFile == string.Empty)
                {
                    throw new ConfigurationException("Configuration property 'configFile' must be set for log4Net configuration of type 'FILE' or 'FILE-WATCH'.");
                }

                if (!File.Exists(configFile))
                {
                    throw new ConfigurationException("log4net configuration file '" + configFile + "' does not exists");
                }
            }

            switch (configType)
            {
                case "INLINE":
                    _runtime.XmlConfiguratorConfigure();
                    break;
                case "FILE":
                    _runtime.XmlConfiguratorConfigure(configFile);
                    break;
                case "FILE-WATCH":
                    _runtime.XmlConfiguratorConfigureAndWatch(configFile);
                    break;
                case "EXTERNAL":
                    // Log4net will be configured outside of Common.Logging
                    break;
                default:
                    _runtime.BasicConfiguratorConfigure();
                    break;
            }
        }
 public TestLog4NetLoggerFactoryAdapter(NameValueCollection properties, ILog4NetRuntime runtime) 
     : base(properties, runtime)
 {}
Esempio n. 4
0
 public TestLog4NetLoggerFactoryAdapter(NameValueCollection properties, ILog4NetRuntime runtime)
     : base(properties, runtime)
 {
 }
		/// <summary>
		/// Constructor accepting configuration properties and an arbitrary 
		/// <see cref="ILog4NetRuntime"/> instance.
		/// </summary>
		/// <param name="properties">configuration properties, see <see cref="Log4NetLoggerFactoryAdapter"/> for more.</param>
		/// <param name="runtime">a log4net runtime adapter</param>
		protected Log4NetLoggerFactoryAdapter(NameValueCollection properties, ILog4NetRuntime runtime)
				: base(true)
		{
			if (runtime == null)
			{
				throw new ArgumentNullException("runtime");
			}
			_runtime = runtime;

			// parse config properties
			string configType = ArgUtils.GetValue(properties, "configType", string.Empty).ToUpper();
			string configFile = ArgUtils.GetValue(properties, "configFile", string.Empty);
			foreach (var x in properties)
			{
				log4net.GlobalContext.Properties[x.Key] = x.Value;
			}

			// app-relative path?
			if (configFile.StartsWith("~/") || configFile.StartsWith("~\\"))
			{

#if NETCF
								string path = Path.GetDirectoryName(typeof(Log4NetLoggerFactoryAdapter).Module.FullyQualifiedName).TrimEnd('/', '\\');                
#else
				string path = AppDomain.CurrentDomain.BaseDirectory.TrimEnd('/', '\\');
#endif
				configFile = string.Format("{0}/{1}", path, configFile.Substring(2));

			}

			if (configType == "FILE" || configType == "FILE-WATCH")
			{
				if (configFile == string.Empty)
				{
					throw new ConfigurationException("Configuration property 'configFile' must be set for log4Net configuration of type 'FILE' or 'FILE-WATCH'.");
				}

				if (!File.Exists(configFile))
				{
					throw new ConfigurationException("log4net configuration file '" + configFile + "' does not exists");
				}
			}

			switch (configType)
			{
				case "INLINE":
					_runtime.XmlConfiguratorConfigure();
					break;
				case "FILE":
					_runtime.XmlConfiguratorConfigure(configFile);
					break;
				case "FILE-WATCH":
					_runtime.XmlConfiguratorConfigureAndWatch(configFile);
					break;
				case "EXTERNAL":
					// Log4net will be configured outside of Common.Logging
					break;
				default:
					_runtime.BasicConfiguratorConfigure();
					break;
			}
		}
        /// <summary>
        /// Constructor accepting configuration properties and an arbitrary 
        /// <see cref="ILog4NetRuntime"/> instance.
        /// </summary>
        /// <param name="properties">configuration properties, see <see cref="Log4NetLoggerFactoryAdapter"/> for more.</param>
        /// <param name="runtime">a log4net runtime adapter</param>
        protected Log4netLoggerFactoryAdapter(NameValueCollection properties, ILog4NetRuntime runtime)
        {
            if (runtime == null)
            {
                throw new ArgumentNullException("runtime");
            }
            _runtime = runtime;

            // parse config properties
            string configType = ArgUtils.GetValue(properties, "configType", string.Empty).ToUpper();
            string configFile = ArgUtils.GetValue(properties, "configFile", string.Empty);
            _circumventLogicalThreadContext =
                Convert.ToBoolean(ArgUtils.GetValue(properties, "circumventLogicalThreadContext", "false"));
            string executionIdProvider = ArgUtils.GetValue(properties, "executionIdProvider", string.Empty);

            if (!string.IsNullOrWhiteSpace(executionIdProvider))
            {
                var type = Type.GetType(executionIdProvider, true, false);
                _executionIdProvider = (IProvideExecutionIds) Activator.CreateInstance(type);
                    // currently not supporting any arguments - change as / when needed
            }

            // app-relative path?
            if (configFile.StartsWith("~/") || configFile.StartsWith("~\\"))
            {
                configFile = string.Format("{0}/{1}", AppDomain.CurrentDomain.BaseDirectory.TrimEnd('/', '\\'), configFile.Substring(2));
            }

            if (configType == "FILE" || configType == "FILE-WATCH")
            {
                if (configFile == string.Empty)
                {
                    throw new ConfigurationErrorsException("Configuration property 'configFile' must be set for log4Net configuration of type 'FILE' or 'FILE-WATCH'.");
                }

                if (!File.Exists(configFile))
                {
                    throw new ConfigurationErrorsException("log4net configuration file '" + configFile + "' does not exists");
                }
            }

            switch (configType)
            {
                case "INLINE":
                    _runtime.XmlConfiguratorConfigure();
                    break;
                case "FILE":
                    _runtime.XmlConfiguratorConfigure(configFile);
                    break;
                case "FILE-WATCH":
                    _runtime.XmlConfiguratorConfigureAndWatch(configFile);
                    break;
                case "EXTERNAL":
                    // Log4net will be configured externally.
                    break;
                default:
                    _runtime.BasicConfiguratorConfigure();
                    break;
            }
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="SitecoreLoggerFactoryAdapter"/> class.
        ///     Constructor accepting configuration properties and an arbitrary
        ///     <see cref="T:Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter.ILog4NetRuntime"/> instance.
        /// </summary>
        /// <param name="properties">
        /// configuration properties, see
        ///     <see cref="T:Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter"/> for more.
        /// </param>
        /// <param name="runtime">
        /// a log4net runtime adapter
        /// </param>
        protected SitecoreLoggerFactoryAdapter(NameValueCollection properties, ILog4NetRuntime runtime)
            : base(true)
        {
            if (runtime == null)
            {
                throw new ArgumentNullException(nameof(runtime));
            }

            this.runtime = runtime;
            var str1 = ArgUtils.GetValue(properties, "configType", string.Empty).ToUpper();
            var str2 = ArgUtils.GetValue(properties, "configFile", string.Empty);
            if (str2.StartsWith("~/") || str2.StartsWith("~\\"))
            {
                str2 = $"{AppDomain.CurrentDomain.BaseDirectory.TrimEnd('/', '\\')}/{str2.Substring(2)}";
            }

            if (str1 == "FILE" || str1 == "FILE-WATCH")
            {
                if (str2 == string.Empty)
                {
                    throw new ConfigurationException(
                        "Configuration property 'configFile' must be set for Sitecore.Logging log4Net configuration of type 'FILE' or 'FILE-WATCH'.");
                }

                if (!File.Exists(str2))
                {
                    throw new ConfigurationException("Sitecore.Logging log4net configuration file '" + str2 + "' does not exists");
                }
            }

            switch (str1)
            {
                case "INLINE":
                    this.runtime.XmlConfiguratorConfigure();
                    break;
                case "FILE":
                    this.runtime.XmlConfiguratorConfigure(str2);
                    break;
                case "FILE-WATCH":
                    this.runtime.XmlConfiguratorConfigureAndWatch(str2);
                    break;
                case "EXTERNAL":
                    break;
                default:
                    this.runtime.BasicConfiguratorConfigure();
                    break;
            }
        }