Serilog записывает в базу данных только в том случае, если таблица ранее не существовала.C#

Место общения программистов C#
Ответить
Anonymous
 Serilog записывает в базу данных только в том случае, если таблица ранее не существовала.

Сообщение Anonymous »

Я использую минимальный API .net 8 и добавил Serilog в свой проект: Я пишу в базу данных MySQL, и если таблица не существует, я использую Serilog, чтобы создать ее. Вот appsettings.json:

Код: Выделить всё

 "WriteTo": [
{
"Name": "MySQL",
"Args": {
"connectionString": "server=myserver;port=3306;Database=mydatabase;uid=username;pwd=password;",
"tableName": "Logs",
"autoCreateSqlTable": true,
"batchPostingLimit": 100,
"period": "0.00:00:10",
При тестировании таблица не существовала. Я запустил приложение, таблица была создана, и я увидел свои журналы (21 запись).
Я снова запустил приложение и попытался записать несколько новых добавленных журналов, но ничего не было записано. То же количество записей (21), которое было в таблице ранее, является единственным, что все еще там. Никаких ошибок или чего-то еще.
Я удаляю таблицу, снова запускаю приложение, и все логи записываются (включая старые и новые). Вот как я инициализирую Serilog в Program.cs:

Код: Выделить всё

var builder = WebApplication.CreateBuilder(args);
IConfiguration configuration = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.Build();

builder.Host.UseSerilog((context, config) =>
{
config
.ReadFrom.Configuration(configuration)
.Enrich.FromLogContext();
});

builder.Services.AddEndpointsApiExplorer();
Почему мои журналы записываются только в том случае, если таблица не существует, и как я настраиваю Serilog для записи в мою базу данных каждый раз, независимо от того, существует таблица или нет?Спасибо
РЕДАКТИРОВАТЬ: я добавил следующее в appsettings.json:

Код: Выделить всё

 "autoCreateSqlDatabase": false,
"autoCreateSqlTable": false,
Вот как я регистрируюсь (просто):

Код: Выделить всё

 logger.Information("This should be in the database");
Тем не менее, новые записи в базу данных не записываются.

Подробнее здесь: https://stackoverflow.com/questions/781 ... usly-exist
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»