Gibt es eine Möglichkeit, um die Ausgabe zu formatieren-format in .NET-Core-logging?
Ich bin mit dem integrierten logging-Anbieter für die Protokollierung in der Konsole (Microsoft.Extensions.Logging.Console
) in einem .NET-Core-console-Anwendung.
Jeder logging-Eintrag erzeugt zwei Linien in der Ausgabe. Ich möchte jeden Eintrag in einer Zeile.
Gibt es eine Möglichkeit, das Ausgabeformat anpassen?
Hier ist ein Beispiel, wie ich es verwenden:
static void Main(string[] args)
{
var serviceProvider = new ServiceCollection()
.AddLogging() //This adds the Microsoft logging.
.AddSingleton<IProjectGeneratorService, CSharpProjectGeneratorService>()
.BuildServiceProvider();
//Configure the console logging.
serviceProvider
.GetService<ILoggerFactory>()
.AddConsole(LogLevel.Debug);
//Write a logging entry
var logger = serviceProvider.GetService<ILoggerFactory>().CreateLogger<Program>();
logger.LogDebug("Application started...");
}
Was ich bekomme ist:
dbug: Generator.Program[0]
Application started...
Was ich haben möchte ist so etwas wie dieses:
dbug: Generator.Program[0]: Application started...
Irgendeine Idee? Ich weiß, dass ich schreiben konnte, eine benutzerdefinierte logger, aber ich würde gerne wissen, ob es eine andere Art und Weise.
Dank.
- Schließlich habe ich den verbesserten Microsoft-logger und veröffentlicht es, github.com/ilya-chumakov/LoggingAdvanced. Mit diesem Paket ist es möglich, die Zeile zu entfernen Trennung zwischen Nachricht teilen. Außerdem habe ich noch ein weiteres killer-feature - timestamp!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zur Zeit nicht konfigurierbar. Der source-code ist hier auf GitHub:
Wenn Sie das wollen, müssen Sie schreiben Sie Ihren eigenen logger. Aber Sie können kopieren Sie einfach den Quellcode der Konsole logger, bei Bedarf zu ändern, und ändern Sie die namespaces, damit es nicht zu stören, mit der version Microsoft Schiffen.
Können Sie auch öffnen, eine Problem auf der logging-repo zu Fragen, für diese option.
Als @MartinUllrich schon erwähnt Zeilenumbruch kann nicht deaktiviert werden und Sie müssen implementieren eine benutzerdefinierte logger zu vermeiden.
Anmeldung:
Umsetzung (kann erweitert werden mit dem original ConsoleLogger source-code - zum Beispiel, könnte man hinzufügen, die
GetLogLevelConsoleColors
- Methode):Können Sie eine logging-Bibliothek wie Serilog.
Mithilfe der Anweisungen aus dem ASP.NET Core-integration können Sie später einfach eine logging-Ausgabe-Vorlage über die Konsole Waschbecken