Estoy usando Serilog para iniciar sesión en mi aplicación de consola. Lo configuro de la siguiente manera.
// Build configuration IConfiguration configuration = new ConfigurationBuilder() .SetBasePath(ApplicationInfo.DataPath) .AddJsonFile("appsettings.json", false, false) .Build(); // Configure Serilog string logFormat = "[{Timestamp:yyyy-MM-dd hh:mm:ss tt}][{Level:u3}] {Message:lj}{NewLine}{Exception}"; Log.Logger = new LoggerConfiguration() .ReadFrom.Configuration(configuration) .WriteTo.Console(LogEventLevel.Verbose, logFormat) .WriteTo.File(ApplicationInfo.GetDataFileName("log"), LogEventLevel.Verbose, logFormat) .CreateLogger(); AppHost = Host.CreateDefaultBuilder(args) .ConfigureServices((context, services) => { services.AddDbContext<TTApplicationDbContext>(options => { options.UseSqlServer(configuration.GetConnectionString("DefaultConnection")); }); services.Configure<EmailSettings>(configuration.GetSection("EmailSettings")); services.Configure<SftpSettings>(configuration.GetSection("FtpSettings")); }) .UseSerilog() .Build();Y en mi archivo appsettings.json .
"Serilog": { "MinimumLevel": { "Default": "Information", "Override": { "Microsoft": "Warning", "System": "Warning" } } }Esto funciona bien, excepto que las consultas SQL aparentemente aparecen en mi registro, relacionadas con las excepciones de Entity Framework.
No quiero cambiar el nivel de registro . Quiero iniciar sesión para estos errores. Simplemente no quiero que se incluyan las consultas SQL reales. Ni siquiera es una cuestión de seguridad. Son demasiado detallados y hacen que sea difícil encontrar los errores reales.
En mis aplicaciones ASP.NET Core, debo agregar la siguiente línea para habilitar las consultas SQL en el registro.
builder.EnableSensitiveDataLogging();Necesito lo contrario de esto para mi aplicación de consola.
Nota: No se apresure a marcar como duplicado. Encontré preguntas similares, pero no pude encontrar ninguna que respondiera directamente a lo que estoy preguntando.
Puede filtrar el espacio de nombres particular que genera comandos SQL y anular
// Configure Serilog string logFormat = "[{Timestamp:yyyy-MM-dd hh:mm:ss tt}][{Level:u3}] {Message:lj}{NewLine}{Exception}"; Log.Logger = new LoggerConfiguration() .ReadFrom.Configuration(configuration) .WriteTo.Console(LogEventLevel.Verbose, logFormat) .WriteTo.File(ApplicationInfo.GetDataFileName("log"), LogEventLevel.Verbose, logFormat) .MinimumLevel.Verbose().MinimumLevel.Override("Microsoft.EntityFrameworkCore.Database.Command", Serilog.Events.LogEventLevel.Warning) .MinimumLevel.Verbose().MinimumLevel.Override("Microsoft.EntityFrameworkCore.Database.Query", Serilog.Events.LogEventLevel.Warning) .CreateLogger();