public For(TokenSpan span, INamePattern names, IExpression values, IExpression body, Else? @else) { Span = span; Names = names; Values = values; Body = body; Else = @else; }
/// <summary> /// Initializes a new instance of the <see cref="LogWriterConfiguration"/> class. /// </summary> /// <param name="namePattern">Pattern that determines for which log writers names the settings apply.</param> /// <param name="tagPatterns">Pattern that determines for which message tags the settings apply.</param> /// <param name="baseLevel">Name of the log level a message must be associated with at minimum to get processed.</param> /// <param name="includes">Names of log levels (or aspects) that should be included in addition to the base level.</param> /// <param name="excludes">Names of log levels (or aspects) that should be excluded although covered by the base level.</param> internal LogWriterConfiguration( INamePattern namePattern, IEnumerable <INamePattern> tagPatterns, string baseLevel, IEnumerable <string> includes = null, IEnumerable <string> excludes = null) { if (string.IsNullOrWhiteSpace(baseLevel)) { throw new ArgumentException("The base level must not be null or whitespace only.", nameof(baseLevel)); } if (namePattern == null) { throw new ArgumentNullException(nameof(namePattern)); } if (tagPatterns == null) { throw new ArgumentNullException(nameof(tagPatterns)); } if (tagPatterns.Any(x => x == null)) { throw new ArgumentException("The list of tag patterns must not contain a null reference."); } mNamePatterns.Add(namePattern); mTagPatterns.AddRange(tagPatterns); mBaseLevel = baseLevel; if (includes != null) { foreach (string level in includes) { if (string.IsNullOrWhiteSpace(level)) { throw new ArgumentException("The include list contains an invalid log level."); } mIncludes.Add(level.Trim()); } } if (excludes != null) { foreach (string level in excludes) { if (string.IsNullOrWhiteSpace(level)) { throw new ArgumentException("The exclude list contains an invalid log level."); } mExcludes.Add(level.Trim()); } } }