diff options
-rw-r--r-- | src/DotNetOpenAuth/Reporting.cs | 38 |
1 files changed, 29 insertions, 9 deletions
diff --git a/src/DotNetOpenAuth/Reporting.cs b/src/DotNetOpenAuth/Reporting.cs index a32945a..1bd3730 100644 --- a/src/DotNetOpenAuth/Reporting.cs +++ b/src/DotNetOpenAuth/Reporting.cs @@ -333,15 +333,7 @@ namespace DotNetOpenAuth { using (var responseReader = response.GetResponseReader()) { string line = responseReader.ReadLine(); if (line != null) { - if (line.StartsWith("INFO ")) { - Logger.Library.Info(line.Substring(5)); - } if (line.StartsWith("WARN ")) { - Logger.Library.Warn(line.Substring(5)); - } else if (line.StartsWith("ERROR ")) { - Logger.Library.Warn(line.Substring(6)); - } else if (line.StartsWith("FATAL ")) { - Logger.Library.Fatal(line.Substring(6)); - } + DemuxLogMessage(line); } } } @@ -365,6 +357,34 @@ namespace DotNetOpenAuth { } /// <summary> + /// Interprets the reporting response as a log message if possible. + /// </summary> + /// <param name="line">The line from the HTTP response to interpret as a log message.</param> + private static void DemuxLogMessage(string line) { + if (line != null) { + string[] parts = line.Split(new char[] { ' ' }, 2); + if (parts.Length == 2) { + string level = parts[0]; + string message = parts[1]; + switch (level) { + case "INFO": + Logger.Library.Info(message); + break; + case "WARN": + Logger.Library.Warn(message); + break; + case "ERROR": + Logger.Library.Error(message); + break; + case "FATAL": + Logger.Library.Fatal(message); + break; + } + } + } + } + + /// <summary> /// Called by every internal/public method on this class to give /// periodic operations a chance to run. /// </summary> |