diff --git a/PluralKit.Bot/packages.lock.json b/PluralKit.Bot/packages.lock.json
index 87383ffd..77182759 100644
--- a/PluralKit.Bot/packages.lock.json
+++ b/PluralKit.Bot/packages.lock.json
@@ -608,8 +608,8 @@
},
"Serilog": {
"type": "Transitive",
- "resolved": "2.10.0",
- "contentHash": "+QX0hmf37a0/OZLxM3wL7V6/ADvC1XihXN4Kq/p6d8lCPfgkRdiuhbWlMaFjR9Av0dy5F0+MBeDmDdRZN/YwQA=="
+ "resolved": "2.12.0",
+ "contentHash": "xaiJLIdu6rYMKfQMYUZgTy8YK7SMZjB4Yk50C/u//Z4OsvxkUfSPJy4nknfvwAC34yr13q7kcyh4grbwhSxyZg=="
},
"Serilog.Extensions.Logging": {
"type": "Transitive",
@@ -681,23 +681,29 @@
},
"Serilog.Sinks.File": {
"type": "Transitive",
- "resolved": "4.1.0",
- "contentHash": "U0b34w+ZikbqWEZ3ui7BdzxY/19zwrdhLtI3o6tfmLdD3oXxg7n2TZJjwCCTlKPgRuYic9CBWfrZevbb70mTaw==",
+ "resolved": "5.0.0",
+ "contentHash": "uwV5hdhWPwUH1szhO8PJpFiahqXmzPzJT/sOijH/kFgUx+cyoDTMM8MHD0adw9+Iem6itoibbUXHYslzXsLEAg==",
"dependencies": {
- "Serilog": "2.5.0",
- "System.IO.FileSystem": "4.0.1",
- "System.Text.Encoding.Extensions": "4.0.11",
- "System.Threading.Timer": "4.0.1"
+ "Serilog": "2.10.0"
}
},
"Serilog.Sinks.PeriodicBatching": {
"type": "Transitive",
- "resolved": "2.1.1",
- "contentHash": "L1iZtcEzQdEIYCPvhYJYB2RofPg+i1NhHJfS+DpXLyLSMS6OXebqaI1fxWhmJRIjD9D9BuXi23FkZTQDiP7cHw==",
+ "resolved": "3.1.0",
+ "contentHash": "NDWR7m3PalVlGEq3rzoktrXikjFMLmpwF0HI4sowo8YDdU+gqPlTHlDQiOGxHfB0sTfjPA9JjA7ctKG9zqjGkw==",
"dependencies": {
- "Serilog": "2.0.0",
- "System.Collections.Concurrent": "4.0.12",
- "System.Threading.Timer": "4.0.1"
+ "Serilog": "2.0.0"
+ }
+ },
+ "Serilog.Sinks.Seq": {
+ "type": "Transitive",
+ "resolved": "5.2.2",
+ "contentHash": "1Csmo5ua7NKUe0yXUx+zsRefjAniPWcXFhUXxXG8pwo0iMiw2gjn9SOkgYnnxbgWqmlGv236w0N/dHc2v5XwMg==",
+ "dependencies": {
+ "Serilog": "2.12.0",
+ "Serilog.Formatting.Compact": "1.1.0",
+ "Serilog.Sinks.File": "5.0.0",
+ "Serilog.Sinks.PeriodicBatching": "3.1.0"
}
},
"SqlKata": {
@@ -1520,51 +1526,52 @@
"myriad": {
"type": "Project",
"dependencies": {
- "Google.Protobuf": "3.13.0",
- "Grpc.Net.ClientFactory": "2.32.0",
- "Polly": "7.2.1",
- "Polly.Contrib.WaitAndRetry": "1.1.1",
- "Serilog": "2.10.0",
- "StackExchange.Redis": "2.2.88",
- "System.Linq.Async": "5.0.0"
+ "Google.Protobuf": "[3.13.0, )",
+ "Grpc.Net.ClientFactory": "[2.32.0, )",
+ "Polly": "[7.2.1, )",
+ "Polly.Contrib.WaitAndRetry": "[1.1.1, )",
+ "Serilog": "[2.10.0, )",
+ "StackExchange.Redis": "[2.2.88, )",
+ "System.Linq.Async": "[5.0.0, )"
}
},
"pluralkit.core": {
"type": "Project",
"dependencies": {
- "App.Metrics": "4.1.0",
- "App.Metrics.Reporting.InfluxDB": "4.1.0",
- "Autofac": "6.0.0",
- "Autofac.Extensions.DependencyInjection": "7.1.0",
- "Dapper": "2.0.35",
- "Dapper.Contrib": "2.0.35",
- "Google.Protobuf": "3.13.0",
- "Microsoft.Extensions.Caching.Memory": "3.1.10",
- "Microsoft.Extensions.Configuration": "3.1.10",
- "Microsoft.Extensions.Configuration.Binder": "3.1.10",
- "Microsoft.Extensions.Configuration.CommandLine": "3.1.10",
- "Microsoft.Extensions.Configuration.EnvironmentVariables": "3.1.10",
- "Microsoft.Extensions.Configuration.Json": "3.1.10",
- "Microsoft.Extensions.DependencyInjection": "3.1.10",
- "Microsoft.Extensions.Logging": "3.1.10",
- "Newtonsoft.Json": "12.0.3",
- "NodaTime": "3.0.3",
- "NodaTime.Serialization.JsonNet": "3.0.0",
- "Npgsql": "4.1.5",
- "Npgsql.NodaTime": "4.1.5",
- "Serilog": "2.10.0",
- "Serilog.Extensions.Logging": "3.0.1",
- "Serilog.Formatting.Compact": "1.1.0",
- "Serilog.NodaTime": "3.0.0",
- "Serilog.Sinks.Async": "1.4.1-dev-00071",
- "Serilog.Sinks.Console": "4.0.0-dev-00834",
- "Serilog.Sinks.Elasticsearch": "8.4.1",
- "Serilog.Sinks.File": "4.1.0",
- "SqlKata": "2.3.7",
- "SqlKata.Execution": "2.3.7",
- "StackExchange.Redis": "2.2.88",
- "System.Interactive.Async": "5.0.0",
- "ipnetwork2": "2.5.381"
+ "App.Metrics": "[4.1.0, )",
+ "App.Metrics.Reporting.InfluxDB": "[4.1.0, )",
+ "Autofac": "[6.0.0, )",
+ "Autofac.Extensions.DependencyInjection": "[7.1.0, )",
+ "Dapper": "[2.0.35, )",
+ "Dapper.Contrib": "[2.0.35, )",
+ "Google.Protobuf": "[3.13.0, )",
+ "Microsoft.Extensions.Caching.Memory": "[3.1.10, )",
+ "Microsoft.Extensions.Configuration": "[3.1.10, )",
+ "Microsoft.Extensions.Configuration.Binder": "[3.1.10, )",
+ "Microsoft.Extensions.Configuration.CommandLine": "[3.1.10, )",
+ "Microsoft.Extensions.Configuration.EnvironmentVariables": "[3.1.10, )",
+ "Microsoft.Extensions.Configuration.Json": "[3.1.10, )",
+ "Microsoft.Extensions.DependencyInjection": "[3.1.10, )",
+ "Microsoft.Extensions.Logging": "[3.1.10, )",
+ "Newtonsoft.Json": "[12.0.3, )",
+ "NodaTime": "[3.0.3, )",
+ "NodaTime.Serialization.JsonNet": "[3.0.0, )",
+ "Npgsql": "[4.1.5, )",
+ "Npgsql.NodaTime": "[4.1.5, )",
+ "Serilog": "[2.12.0, )",
+ "Serilog.Extensions.Logging": "[3.0.1, )",
+ "Serilog.Formatting.Compact": "[1.1.0, )",
+ "Serilog.NodaTime": "[3.0.0, )",
+ "Serilog.Sinks.Async": "[1.4.1-dev-00071, )",
+ "Serilog.Sinks.Console": "[4.0.0-dev-00834, )",
+ "Serilog.Sinks.Elasticsearch": "[8.4.1, )",
+ "Serilog.Sinks.File": "[5.0.0, )",
+ "Serilog.Sinks.Seq": "[5.2.2, )",
+ "SqlKata": "[2.3.7, )",
+ "SqlKata.Execution": "[2.3.7, )",
+ "StackExchange.Redis": "[2.2.88, )",
+ "System.Interactive.Async": "[5.0.0, )",
+ "ipnetwork2": "[2.5.381, )"
}
}
}
diff --git a/PluralKit.Core/CoreConfig.cs b/PluralKit.Core/CoreConfig.cs
index c70f9791..29fa664b 100644
--- a/PluralKit.Core/CoreConfig.cs
+++ b/PluralKit.Core/CoreConfig.cs
@@ -14,6 +14,7 @@ public class CoreConfig
public string InfluxDb { get; set; }
public string LogDir { get; set; }
public string? ElasticUrl { get; set; }
+ public string? SeqLogUrl { get; set; }
public LogEventLevel ConsoleLogLevel { get; set; } = LogEventLevel.Debug;
public LogEventLevel ElasticLogLevel { get; set; } = LogEventLevel.Information;
diff --git a/PluralKit.Core/Modules/LoggingModule.cs b/PluralKit.Core/Modules/LoggingModule.cs
index 0f301863..dd026207 100644
--- a/PluralKit.Core/Modules/LoggingModule.cs
+++ b/PluralKit.Core/Modules/LoggingModule.cs
@@ -10,6 +10,7 @@ using Serilog;
using Serilog.Events;
using Serilog.Formatting.Compact;
using Serilog.Sinks.Elasticsearch;
+using Serilog.Sinks.Seq;
using Serilog.Sinks.SystemConsole.Themes;
using ILogger = Serilog.ILogger;
@@ -115,6 +116,15 @@ public class LoggingModule: Module
logCfg.WriteTo.Elasticsearch(elasticConfig);
}
+ if (config.SeqLogUrl != null)
+ {
+ logCfg.WriteTo.Seq(
+ config.SeqLogUrl,
+ restrictedToMinimumLevel: LogEventLevel.Verbose
+ );
+ }
+
+
_fn.Invoke(logCfg);
return Log.Logger = logCfg.CreateLogger();
}
diff --git a/PluralKit.Core/PluralKit.Core.csproj b/PluralKit.Core/PluralKit.Core.csproj
index a22155b8..3f64ae00 100644
--- a/PluralKit.Core/PluralKit.Core.csproj
+++ b/PluralKit.Core/PluralKit.Core.csproj
@@ -37,14 +37,15 @@
-
+
-
+
+
diff --git a/PluralKit.Core/packages.lock.json b/PluralKit.Core/packages.lock.json
index f3d1653d..163526f7 100644
--- a/PluralKit.Core/packages.lock.json
+++ b/PluralKit.Core/packages.lock.json
@@ -202,9 +202,9 @@
},
"Serilog": {
"type": "Direct",
- "requested": "[2.10.0, )",
- "resolved": "2.10.0",
- "contentHash": "+QX0hmf37a0/OZLxM3wL7V6/ADvC1XihXN4Kq/p6d8lCPfgkRdiuhbWlMaFjR9Av0dy5F0+MBeDmDdRZN/YwQA=="
+ "requested": "[2.12.0, )",
+ "resolved": "2.12.0",
+ "contentHash": "xaiJLIdu6rYMKfQMYUZgTy8YK7SMZjB4Yk50C/u//Z4OsvxkUfSPJy4nknfvwAC34yr13q7kcyh4grbwhSxyZg=="
},
"Serilog.Extensions.Logging": {
"type": "Direct",
@@ -274,14 +274,23 @@
},
"Serilog.Sinks.File": {
"type": "Direct",
- "requested": "[4.1.0, )",
- "resolved": "4.1.0",
- "contentHash": "U0b34w+ZikbqWEZ3ui7BdzxY/19zwrdhLtI3o6tfmLdD3oXxg7n2TZJjwCCTlKPgRuYic9CBWfrZevbb70mTaw==",
+ "requested": "[5.0.0, )",
+ "resolved": "5.0.0",
+ "contentHash": "uwV5hdhWPwUH1szhO8PJpFiahqXmzPzJT/sOijH/kFgUx+cyoDTMM8MHD0adw9+Iem6itoibbUXHYslzXsLEAg==",
"dependencies": {
- "Serilog": "2.5.0",
- "System.IO.FileSystem": "4.0.1",
- "System.Text.Encoding.Extensions": "4.0.11",
- "System.Threading.Timer": "4.0.1"
+ "Serilog": "2.10.0"
+ }
+ },
+ "Serilog.Sinks.Seq": {
+ "type": "Direct",
+ "requested": "[5.2.2, )",
+ "resolved": "5.2.2",
+ "contentHash": "1Csmo5ua7NKUe0yXUx+zsRefjAniPWcXFhUXxXG8pwo0iMiw2gjn9SOkgYnnxbgWqmlGv236w0N/dHc2v5XwMg==",
+ "dependencies": {
+ "Serilog": "2.12.0",
+ "Serilog.Formatting.Compact": "1.1.0",
+ "Serilog.Sinks.File": "5.0.0",
+ "Serilog.Sinks.PeriodicBatching": "3.1.0"
}
},
"SqlKata": {
@@ -684,12 +693,10 @@
},
"Serilog.Sinks.PeriodicBatching": {
"type": "Transitive",
- "resolved": "2.1.1",
- "contentHash": "L1iZtcEzQdEIYCPvhYJYB2RofPg+i1NhHJfS+DpXLyLSMS6OXebqaI1fxWhmJRIjD9D9BuXi23FkZTQDiP7cHw==",
+ "resolved": "3.1.0",
+ "contentHash": "NDWR7m3PalVlGEq3rzoktrXikjFMLmpwF0HI4sowo8YDdU+gqPlTHlDQiOGxHfB0sTfjPA9JjA7ctKG9zqjGkw==",
"dependencies": {
- "Serilog": "2.0.0",
- "System.Collections.Concurrent": "4.0.12",
- "System.Threading.Timer": "4.0.1"
+ "Serilog": "2.0.0"
}
},
"System.AppContext": {