aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller
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
parent5df87b3e0da0ef3010ec9929939ef3084bff42be (diff)
Add endpoint to log client events
Diffstat (limited to 'MediaBrowser.Controller')
-rw-r--r--MediaBrowser.Controller/ClientEvent/ClientEventLogger.cs38
-rw-r--r--MediaBrowser.Controller/ClientEvent/IClientEventLogger.cs16
-rw-r--r--MediaBrowser.Controller/MediaBrowser.Controller.csproj2
3 files changed, 55 insertions, 1 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
diff --git a/MediaBrowser.Controller/ClientEvent/IClientEventLogger.cs b/MediaBrowser.Controller/ClientEvent/IClientEventLogger.cs
new file mode 100644
index 000000000..bf799c7bf
--- /dev/null
+++ b/MediaBrowser.Controller/ClientEvent/IClientEventLogger.cs
@@ -0,0 +1,16 @@
+using MediaBrowser.Model.ClientLog;
+
+namespace MediaBrowser.Controller.ClientEvent
+{
+ /// <summary>
+ /// The client event logger.
+ /// </summary>
+ public interface IClientEventLogger
+ {
+ /// <summary>
+ /// Logs the event from the client.
+ /// </summary>
+ /// <param name="clientLogEvent">The client log event.</param>
+ void Log(ClientLogEvent clientLogEvent);
+ }
+} \ No newline at end of file
diff --git a/MediaBrowser.Controller/MediaBrowser.Controller.csproj b/MediaBrowser.Controller/MediaBrowser.Controller.csproj
index 8c68b47dd..7c95ab818 100644
--- a/MediaBrowser.Controller/MediaBrowser.Controller.csproj
+++ b/MediaBrowser.Controller/MediaBrowser.Controller.csproj
@@ -16,7 +16,7 @@
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Configuration.Abstractions" Version="5.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.Binder" Version="5.0.0" />
- <PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.0.0" PrivateAssets="All"/>
+ <PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.0.0" PrivateAssets="All" />
<PackageReference Include="System.Threading.Tasks.Dataflow" Version="5.0.0" />
</ItemGroup>