LoggerUtils.cs 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. using MediaBrowser.Model.Logging;
  2. using System;
  3. using System.Globalization;
  4. using SocketHttpListener.Net;
  5. namespace MediaBrowser.Server.Implementations.HttpServer
  6. {
  7. public static class LoggerUtils
  8. {
  9. /// <summary>
  10. /// Logs the request.
  11. /// </summary>
  12. /// <param name="logger">The logger.</param>
  13. /// <param name="request">The request.</param>
  14. public static void LogRequest(ILogger logger, HttpListenerRequest request)
  15. {
  16. var url = request.Url.ToString();
  17. logger.Info("{0} {1}. UserAgent: {2}", request.IsWebSocketRequest ? "WS" : "HTTP " + request.HttpMethod, url, request.UserAgent ?? string.Empty);
  18. }
  19. public static void LogRequest(ILogger logger, string url, string method, string userAgent)
  20. {
  21. logger.Info("{0} {1}. UserAgent: {2}", "HTTP " + method, url, userAgent ?? string.Empty);
  22. }
  23. /// <summary>
  24. /// Logs the response.
  25. /// </summary>
  26. /// <param name="logger">The logger.</param>
  27. /// <param name="statusCode">The status code.</param>
  28. /// <param name="url">The URL.</param>
  29. /// <param name="endPoint">The end point.</param>
  30. /// <param name="duration">The duration.</param>
  31. public static void LogResponse(ILogger logger, int statusCode, string url, string endPoint, TimeSpan duration)
  32. {
  33. var durationMs = duration.TotalMilliseconds;
  34. var logSuffix = durationMs >= 1000 && durationMs < 60000 ? "ms (slow)" : "ms";
  35. logger.Info("HTTP Response {0} to {1}. Time: {2}{3}. {4}", statusCode, endPoint, Convert.ToInt32(durationMs).ToString(CultureInfo.InvariantCulture), logSuffix, url);
  36. }
  37. }
  38. }