aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller/ClientEvent/ClientEventLogger.cs
diff options
context:
space:
mode:
authorcrobibero <cody@robibe.ro>2021-04-26 07:02:26 -0600
committercrobibero <cody@robibe.ro>2021-04-26 07:02:26 -0600
commit1d6224c9c66b31c9df602b4281c870a9c400767c (patch)
tree91e65f2c5aa0de89a9782a3036a9fc62777ea929 /MediaBrowser.Controller/ClientEvent/ClientEventLogger.cs
parent5df87b3e0da0ef3010ec9929939ef3084bff42be (diff)
Add endpoint to log client events
Diffstat (limited to 'MediaBrowser.Controller/ClientEvent/ClientEventLogger.cs')
-rw-r--r--MediaBrowser.Controller/ClientEvent/ClientEventLogger.cs38
1 files changed, 38 insertions, 0 deletions
diff --git a/MediaBrowser.Controller/ClientEvent/ClientEventLogger.cs b/MediaBrowser.Controller/ClientEvent/ClientEventLogger.cs
new file mode 100644
index 000000000..c00a38d1b
--- /dev/null
+++ b/MediaBrowser.Controller/ClientEvent/ClientEventLogger.cs
@@ -0,0 +1,38 @@
+using System;
+using MediaBrowser.Model.ClientLog;
+using Microsoft.Extensions.Logging;
+
+namespace MediaBrowser.Controller.ClientEvent
+{
+ /// <inheritdoc />
+ public class ClientEventLogger : IClientEventLogger
+ {
+ private const string LogString = "[{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz}] [{Level}] [{ClientName}:{ClientVersion}]: UserId: {UserId} DeviceId: {DeviceId}{NewLine}{Message}";
+ private readonly ILogger<ClientEventLogger> _logger;
+
+ /// <summary>
+ /// Initializes a new instance of the <see cref="ClientEventLogger"/> class.
+ /// </summary>
+ /// <param name="logger">Instance of the <see cref="ILogger{ClientEventLogger}"/> interface.</param>
+ public ClientEventLogger(ILogger<ClientEventLogger> logger)
+ {
+ _logger = logger;
+ }
+
+ /// <inheritdoc />
+ public void Log(ClientLogEvent clientLogEvent)
+ {
+ _logger.Log(
+ LogLevel.Critical,
+ LogString,
+ clientLogEvent.Timestamp,
+ clientLogEvent.Level.ToString(),
+ clientLogEvent.ClientName,
+ clientLogEvent.ClientVersion,
+ clientLogEvent.UserId ?? Guid.Empty,
+ clientLogEvent.DeviceId,
+ Environment.NewLine,
+ clientLogEvent.Message);
+ }
+ }
+} \ No newline at end of file