Exemple #1
0
        // ------------------------------------------
        // MUTATORS
        // ------------------------------------------

        #region Mutators

        /// <summary>
        /// Sets the specfied options
        /// </summary>
        /// <param name="options"></param>
        /// <returns>Returns this instance.</returns>
        public ITBdoJob <S> WithOptions(ITBdoHostOptions <S> options)
        {
            Options = options;
            WithSettings(Settings);

            return(this);
        }
Exemple #2
0
        /// <summary>
        /// Sets the logger.
        /// </summary>
        /// <param name="options">The BindOpen host options to consider.</param>
        /// <param name="initBuilder">The logger builder action to consider.</param>
        /// <returns></returns>
        public static ITBdoHostOptions <S> SetLogger <S>(
            this ITBdoHostOptions <S> options,
            Func <LoggerConfiguration, LoggerConfiguration> initLoggerConfig,
            bool isTraceLoggerAtStartup = false)
            where S : class, IBdoAppSettings, new()
        {
            options.SetLogger(h =>
            {
                var config = new LoggerConfiguration();
                initLoggerConfig?.Invoke(config);

                var loggerFactory = new LoggerFactory();
                loggerFactory.AddSerilog(config.CreateLogger());
                return(loggerFactory.CreateLogger <IBdoHost>());
            });

            if (isTraceLoggerAtStartup)
            {
                var config = new LoggerConfiguration();
                config.WriteTo.Trace();

                var loggerFactory = new LoggerFactory();
                loggerFactory.AddSerilog(config.CreateLogger());

                options.SetLoggerAtStartup(loggerFactory);
            }

            return(options);
        }
Exemple #3
0
        /// <summary>
        /// Add a BindOpen file logger.
        /// </summary>
        /// <param name="builder">The logging builder to consider.</param>
        /// <param name="options">The BindOpen host options to consider.</param>
        /// <returns></returns>
        public static LoggerConfiguration AddFile <S>(
            this LoggerConfiguration config,
            ITBdoHostOptions <S> options)
            where S : class, IBdoAppSettings, new()
        {
            int?expirationDayNumber = options?.HostSettings?.LogsExpirationDayNumber < 0 ?
                                      null : options?.HostSettings?.LogsExpirationDayNumber;

            config?.WriteTo.File(
                (options?.HostSettings?.LogsFolderPath + options?.HostSettings?.LogsFileName).ToPath(),
                rollingInterval: RollingInterval.Infinite,
                retainedFileCountLimit: expirationDayNumber);

            return(config);
        }