Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

401
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda