feat: switching to logging via OpenTelemetry
This commit is contained in:
@@ -23,6 +23,7 @@ using Mirea.Api.Security.Services;
|
||||
using MySqlConnector;
|
||||
using Npgsql;
|
||||
using Serilog;
|
||||
using Serilog.Sinks.OpenTelemetry;
|
||||
using StackExchange.Redis;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
@@ -434,26 +435,32 @@ public class SetupController(
|
||||
}
|
||||
};
|
||||
|
||||
if (!string.IsNullOrEmpty(request?.ApiServerSeq))
|
||||
if (!string.IsNullOrEmpty(request?.OpenTelemetryEndpoint)
|
||||
&& !string.IsNullOrEmpty(request.OpenTelemetryServiceName))
|
||||
{
|
||||
settings.ApiServerSeq = request.ApiServerSeq;
|
||||
settings.ApiKeySeq = request.ApiKeySeq;
|
||||
settings.OpenTelemetryEndpoint = request.OpenTelemetryEndpoint;
|
||||
settings.OpenTelemetryServiceName = request.OpenTelemetryServiceName;
|
||||
|
||||
try
|
||||
{
|
||||
Log.Logger = new LoggerConfiguration()
|
||||
.WriteTo.Seq(settings.ApiServerSeq, apiKey: settings.ApiKeySeq)
|
||||
using var innerLogger = new LoggerConfiguration()
|
||||
.WriteTo.OpenTelemetry(options =>
|
||||
{
|
||||
options.Endpoint = settings.OpenTelemetryEndpoint;
|
||||
options.Protocol = OtlpProtocol.Grpc;
|
||||
options.ResourceAttributes = new Dictionary<string, object>
|
||||
{
|
||||
["service.name"] = settings.OpenTelemetryServiceName,
|
||||
["deployment.environment"] = "test"
|
||||
};
|
||||
})
|
||||
.CreateLogger();
|
||||
|
||||
Log.Warning("Testing configuration Seq.");
|
||||
innerLogger.Warning("🚀 Testing OpenTelemetry log delivery.");
|
||||
}
|
||||
catch
|
||||
catch (Exception ex)
|
||||
{
|
||||
// ignoring
|
||||
}
|
||||
finally
|
||||
{
|
||||
Log.CloseAndFlush();
|
||||
Console.WriteLine("Error sending log to OTEL Collector: " + ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -476,9 +483,7 @@ public class SetupController(
|
||||
{
|
||||
EnableLogToFile = settings.EnableLogToFile,
|
||||
LogFileName = settings.LogFileName,
|
||||
LogFilePath = settings.LogFilePath,
|
||||
ApiKeySeq = settings.ApiKeySeq,
|
||||
ApiServerSeq = settings.ApiServerSeq
|
||||
LogFilePath = settings.LogFilePath
|
||||
});
|
||||
|
||||
return true;
|
||||
|
Reference in New Issue
Block a user