// ------------------------------------------ // 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); }
/// <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); }
/// <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); }