/// <summary> /// Write log events to the specified <see cref="ILogEventSink"/>. /// </summary> /// <param name="logEventSink">The sink.</param> /// <param name="restrictedToMinimumLevel">The minimum level for /// events passed through the sink. Ignored when <paramref name="levelSwitch"/> is specified.</param> /// <param name="levelSwitch">A switch allowing the pass-through minimum level /// to be changed at runtime.</param> /// <returns>Configuration object allowing method chaining.</returns> public LoggerConfiguration Sink( ILogEventSink logEventSink, LogEventLevel restrictedToMinimumLevel = LevelAlias.Minimum, // ReSharper disable once MethodOverloadWithOptionalParameter LoggingLevelSwitch levelSwitch = null) { var sink = logEventSink; if (levelSwitch != null) { if (restrictedToMinimumLevel != LevelAlias.Minimum) { SelfLog.WriteLine("Sink {0} was configured with both a level switch and minimum level '{1}'; the minimum level will be ignored and the switch level used", sink, restrictedToMinimumLevel); } sink = new RestrictedSink(sink, levelSwitch); } else if (restrictedToMinimumLevel > LevelAlias.Minimum) { sink = new RestrictedSink(sink, new LoggingLevelSwitch(restrictedToMinimumLevel)); } _addSink(sink); return(_loggerConfiguration); }
/// <summary> /// Write log events to the specified <see cref="ILogEventSink"/>. /// </summary> /// <param name="logEventSink">The sink.</param> /// <param name="restrictedToMinimumLevel">The minimum level for /// events passed through the sink.</param> /// <returns>Configuration object allowing method chaining.</returns> public LoggerConfiguration Sink(ILogEventSink logEventSink, LogEventLevel restrictedToMinimumLevel = LogEventLevel.Minimum) { var sink = logEventSink; if (restrictedToMinimumLevel > LogEventLevel.Minimum) { sink = new RestrictedSink(sink, restrictedToMinimumLevel); } _addSink(sink); return(_loggerConfiguration); }