Um eine .net Core-App zu debuggen, die beim Start fehlschlägt, möchte ich Protokolle aus der startup.cs-Datei schreiben. Ich habe Logging-Setup innerhalb der Datei, die im Rest der App außerhalb der Datei startup.cs verwendet werden kann, aber nicht sicher, wie Protokolle aus der Datei startup.cs selbst zu schreiben.Wie schreibe ich Protokolle aus Startup.cs
16
A
Antwort
12
Option 1: direkt verwenden log (zB Serilog) in startup
public class Startup
{
public Startup(IHostingEnvironment env)
{
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Debug()
.WriteTo.RollingFile(Path.Combine(env.ContentRootPath, "Serilog-{Date}.txt"))
.CreateLogger();
Log.Information("Inside Startup ctor");
....
}
public void ConfigureServices(IServiceCollection services)
{
Log.Information("ConfigureServices");
....
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
Log.Information("Configure");
....
}
Output:
Zur Einrichtung Serilog in asp.net-Core-Anwendung , schau dir die Serilog.AspNetCore package on GitHub an.
Option2: Konfigurieren der Protokollierung in Program.cs wie this-
var host = new WebHostBuilder()
.UseKestrel()
.ConfigureServices(s => {
s.AddSingleton<IFormatter, LowercaseFormatter>();
})
.ConfigureLogging(f => f.AddConsole(LogLevel.Debug))
.UseStartup<Startup>()
.Build();
host.Run();
Benutzer loggerFactory in Start wie this-
public class Startup
{
ILogger _logger;
IFormatter _formatter;
public Startup(ILoggerFactory loggerFactory, IFormatter formatter)
{
_logger = loggerFactory.CreateLogger<Startup>();
_formatter = formatter;
}
public void ConfigureServices(IServiceCollection services)
{
_logger.LogDebug($"Total Services Initially: {services.Count}");
// register services
//services.AddSingleton<IFoo, Foo>();
}
public void Configure(IApplicationBuilder app, IFormatter formatter)
{
// note: can request IFormatter here as well as via constructor
_logger.LogDebug("Configure() started...");
app.Run(async (context) => await context.Response.WriteAsync(_formatter.Format("Hi!")));
_logger.LogDebug("Configure() complete.");
}
}
Vollständige Angaben auf dieser link
0
Ich habe es geschafft, dies zu tun, indem Sie einen Logger mit Nlog in der Datei statisch erstellen, dann verwenden Sie dies innerhalb der Startmethoden.
private readonly NLog.Logger _logger = new NLog.LogFactory().GetCurrentClassLogger();
19
Dies hat sich geändert s deutlich mit der Veröffentlichung von ASP.NET Core 2.0. In ASP.NET Core 2.0 wird die Protokollierung im Host-Generator erstellt. Dies bedeutet, dass die Protokollierung standardmäßig über DI verfügbar ist und in die Klasse Startup
public class Startup
{
private readonly ILogger<Startup> _logger;
public IConfiguration Configuration { get; }
public Startup(ILogger<Startup> logger, IConfiguration configuration)
{
_logger = logger;
Configuration = configuration;
}
public void ConfigureServices(IServiceCollection services)
{
_logger.LogInformation("ConfigureServices called");
// …
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
_logger.LogInformation("Configure called");
// …
}
}
eingegeben werden kann
Verwandte Themen
- 1. Wie Konfigurationseinstellungen aus XML-Datei in Startup.cs ziehen
- 2. Wie führe ich eine Javascript-Datei über Protokolle/Schemata aus?
- 3. Wie Docker Protokolle aus einem laufenden Container
- 4. wie dieses Objekt in Startup.cs instanziiert wird
- 5. Startup.cs-Fehler (ASP.Net-Core-Konfiguration)
- 6. Wie bekomme ich Protokolle und schreibe sie in eine Datei mit Node.js?
- 7. Wie schreibe ich Protokolle in eine Diff-Datei für mehrere Instanzen in Mfp
- 8. Übergeben Sie Daten an startup.cs
- 9. Wie schreibe ich einen Pseudocode in Mapreduce?
- 10. Wie schreibe ich Suchklasse?
- 11. Wie schreibe ich KeyBindings
- 12. Wie schreibe ich Projektdokumentation?
- 13. Wie schreibe ich ein großes Login Javascript?
- 14. Wie schreibe ich in ContactStore.Contact.Phones?
- 15. Wie schreibe ich spam filter
- 16. Wie schreibe ich einzelne Zeilenblöcke
- 17. Wie schreibe ich die Abfrage?
- 18. Wie sammle ich Protokolle von cloudbasierten Diensten?
- 19. Wie sehe ich Protokolle auf Parse-Server?
- 20. Wie kann ich überprüfen Oozie Protokolle
- 21. Wie finde ich meine Protokolle in Heroku?
- 22. Wie wälze ich sensu Protokolle ohne Neustart?
- 23. Wie schreibe ich ein Programm aus bereitgestellten Unittest
- 24. Wie schreibe ich eine Variable aus Js-Datei in HTML
- 25. Wie schreibe ich T I L T aus Bindestrichen?
- 26. Wie schreibe ich in json mit Kindern aus R
- 27. Wie schreibe ich Objekte aus Ruby-Objekten in Datei
- 28. Jade. Wie schreibe ich aus der neuen Zeile?
- 29. Fehlende WebApiConfig.cs in App_Start. Kann ich Startup.cs verwenden?
- 30. So entfernen Sie Protokolle aus Linkdialog (ckeditor)