Я добавил Serilog для записи в текстовый файл и собственный поставщик для записи в таблицу базы данных SQL Server. Код работает, когда я добавляю любой из них, но если добавить оба, работает только Serilog. пожалуйста, порекомендуйте
builder.Services.AddLogging(configure =>
{
configure.AddProvider(new SqlServerLoggerProvider(connectionString.Value, sqlServerMinimumLogLevel)); // Assuming custom provider implemented
});
var logFilePath = Path.Combine(Directory.GetCurrentDirectory(), "logs", "workerService-{Date}.txt");
builder.Services.AddSerilog(loggingBuilder =>
loggingBuilder.MinimumLevel.Debug()
.WriteTo.Console()
.WriteTo.File(logFilePath, rollingInterval: RollingInterval.Day,
fileSizeLimitBytes: 10 * 1024 * 1024) // Limit each log file to 10 MB
);
Требуется сохранить журнал ошибок в таблице ELMA в базе данных SQL Server, которая имеет таблицу «ELMA_Error» и регистрируется приложением ASP.NET Core. Проблема в том, что мы не можем использовать регистратор ELMAH в службе Worker, поскольку это не веб-приложение. Можно ли настроить serilog для вызова хранимой процедуры ELMAH и передачи необходимого значения.
Есть ли способ добавить серийный журнал, не удаляя собственный поставщик журналов.





Вы можете использовать пакет Serilog.Extensions.Logging, а затем настроить его, как показано ниже, это не будет переопределять других поставщиков средств регистрации.
var logger = new LoggerConfiguration()
.MinimumLevel.Debug()
.WriteTo.Console()
.WriteTo.File(logFilePath, rollingInterval: RollingInterval.Day,fileSizeLimitBytes: 10 * 1024 * 1024)
.CreateLogger();
builder.Services.AddLogging(configure =>
{
configure.AddSerilog(logger);
configure.AddProvider(new SqlServerLoggerProvider(connectionString.Value, sqlServerMinimumLogLevel));
});
@Qjang Fu: Ваше решение работает. Большое спасибо. Я переместил имя файла serilog и другие настройки в appsetting, чтобы сделать их настраиваемыми.
AddSerilogудаляет всех предыдущих поставщиков. Рассмотрите возможность использования приемника SQL Server Serilog вместо создания собственного