示例#1
0
        /// <summary>
        /// Logs the given <paramref name="text"/> at the provided verbosity.
        /// </summary>
        /// <param name="minimumVerbosity">The minimum verbosity a logger must have in order to receive the message.
        /// </param>
        /// <param name="text">The line to log.</param>
        public static void WriteLine(VerbosityLevel minimumVerbosity, StringIfNotFormattableStringAdapter text)
        {
            lock (LoggingLock)
            {
                // write log line.
                var formattedText = (string)text;
                switch (minimumVerbosity)
                {
                case VerbosityLevel.Warn:
                    NlogInstance.Warn(formattedText);
                    break;

                case VerbosityLevel.Info:
                    NlogInstance.Info(formattedText);
                    break;

                case VerbosityLevel.Debug:
                    NlogInstance.Debug(formattedText);
                    break;

                case VerbosityLevel.Trace:
                    NlogInstance.Trace(formattedText);
                    break;

                default:
                    throw new ArgumentOutOfRangeException(
                              nameof(minimumVerbosity),
                              minimumVerbosity,
                              "Enum value not handled.");
                }
            }
        }
示例#2
0
 /// <summary>
 /// Writes the given <paramref name="formattableText"/>, formatted with <see cref="CultureInfo.InvariantCulture"/> and the given <paramref name="arguments"/>.
 /// </summary>
 /// <param name="minimumVerbosity">The minimum verbosity a logger must have in order to receive the message.
 /// </param>
 /// <param name="formattableText">A text with using wildcards as {0}, to fill with <paramref name="arguments"/>.</param>
 /// <param name="arguments">The arguments to fill in the <paramref name="formattableText"/>.</param>
 public static void WriteLine(
     VerbosityLevel minimumVerbosity,
     StringIfNotFormattableStringAdapter formattableText,
     params object[] arguments)
 {
     lock (LoggingLock)
     {
         WriteLine(minimumVerbosity, CultureInfo.InvariantCulture, formattableText, arguments);
     }
 }
示例#3
0
 /// <summary>
 /// Writes the given <paramref name="formattableText"/>, formatted with <paramref name="culture"/> and the given <paramref name="arguments"/>.
 /// </summary>
 /// <param name="minimumVerbosity">The minimum verbosity a logger must have in order to receive the message.
 /// </param>
 /// <param name="culture">The culture to use.</param>
 /// <param name="formattableText">A text with using wildcards as {0}, to fill with <paramref name="arguments"/>.</param>
 /// <param name="arguments">The arguments to fill in the <paramref name="formattableText"/>.</param>
 public static void WriteLine(
     VerbosityLevel minimumVerbosity,
     CultureInfo culture,
     StringIfNotFormattableStringAdapter formattableText,
     params object[] arguments)
 {
     lock (LoggingLock)
     {
         try
         {
             var text = string.Format(culture, formattableText, arguments);
             WriteLine(minimumVerbosity, text);
         }
         catch (Exception e)
         {
             WriteLine(VerbosityLevel.Warn, $"Error when formatting text: {e.Message}");
             WriteLine(minimumVerbosity, formattableText);
         }
     }
 }