Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

400
Vistas
Los registros de aplicaciones de .NET 6 están en formato JSON después de la migración desde .NET Core 3.1 (Docker)

Recientemente actualicé mi API REST de .NET Core de 3.1 a 6.0 . Cuando ejecuto la aplicación localmente sin Docker en la configuración de desarrollo o versión, los registros se formatean como siempre:

ingrese la descripción de la imagen aquí

Al ejecutar la aplicación como contenedor de Docker, los registros se transforman en JSON . Esto apareció después de la migración a .Net 6.

ingrese la descripción de la imagen aquí

¿Cómo puedo volver al formato de registro estándar en el entorno de Docker?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

El cambio se realizó en .NET 5, no en 6. En .NET Core 3.1, se corrigió el formato de registro de la consola. En .NET 5 , ahora se puede personalizar con 3 formateadores predefinidos: Simple (el antiguo), Systemd y Json (el predeterminado). Es posible crear un formateador personalizado.

Como muestran los documentos, es posible usar el formateador simple usando el método AddSimpleConsole en lugar de AddConsole :

 using ILoggerFactory loggerFactory = LoggerFactory.Create(builder => builder.AddSimpleConsole(options => { options.IncludeScopes = true; options.SingleLine = true; options.TimestampFormat = "hh:mm:ss "; }));

Existen métodos similares para los otros dos formateadores: AddSystemdConsole y AddJsonConsole .

Es posible configurar el formateador a través de la configuración :

 { "Logging": { "LogLevel": { "Default": "Information", "Microsoft": "Warning", "Microsoft.Hosting.Lifetime": "Information" }, "Console": { "LogLevel": { "Default": "Information", "Microsoft": "Warning", "Microsoft.Hosting.Lifetime": "Information" }, "FormatterName": "json", "FormatterOptions": { "SingleLine": true, "IncludeScopes": true, "TimestampFormat": "HH:mm:ss ", "UseUtcTimestamp": true, "JsonWriterOptions": { "Indented": true } } } }, "AllowedHosts": "*" }

Finalmente, es posible crear un formateador completamente nuevo al heredar de ConsoleFormatter y anular el método Write :

 public sealed class CustomFormatter : ConsoleFormatter, IDisposable { ... public override void Write<TState>( in LogEntry<TState> logEntry, IExternalScopeProvider scopeProvider, TextWriter textWriter) { string? message = logEntry.Formatter?.Invoke( logEntry.State, logEntry.Exception); if (message is null) { return; } CustomLogicGoesHere(textWriter); textWriter.WriteLine(message); } ... }
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda