public static ILoggerFactory AddLog4Net(this ILoggerFactory factory, Action <Log4NetProviderOptions> log4NetOptions)
        {
            if (factory == null)
            {
                throw new ArgumentNullException(nameof(factory));
            }
            if (log4NetOptions == null)
            {
                throw new ArgumentNullException(nameof(log4NetOptions));
            }

            var options = new Log4NetProviderOptions();

            log4NetOptions(options);

            ConfigureLog4Net(options);

            using (var provider = new Log4NetLoggerProvider(options))
            {
                provider.Options = options;
                factory.AddProvider(provider);
            }

            return(factory);
        }
Exemple #2
0
        public static ILoggingBuilder AddLog4Net(this ILoggingBuilder factory, Log4NetProviderOptions options)
        {
            using (var provider = new Log4NetLoggerProvider(options))
                factory.AddProvider(provider);

            return(factory);
        }
        /// <summary>
        /// Enable Log4Net as logging provider for Harry.Logging.
        /// </summary>
        /// <param name="factory"></param>
        /// <param name="fullFilePath"></param>
        /// <returns></returns>
        public static ILoggerFactory AddLog4Net(
#if !NET20
            this
#endif
            ILoggerFactory factory, string fullFilePath = null)
        {
            if (!string.IsNullOrEmpty(fullFilePath))
            {
                XmlConfigurator.ConfigureAndWatch(new System.IO.FileInfo(fullFilePath));
            }

            using (var provider = new Log4NetLoggerProvider())
            {
                factory.AddProvider(provider);
            }
            return(factory);
        }