Cześć,
piszę sobie kod w asp.net i często mam potrzebę wiedzieć jak wykonują się pewne operacje. Nie chcę ich wyświetlać przez widok ani korzystać z debugera - potrzebuję wyświetlić większą ilość danych.
Chciałem się więc zapytać czy jest możliwe, aby część informacji wyświetlić w konsoli? Jeśli tak to w jaki sposób? Chodzi mi o sytuację, gdzie uruchamiając kod otwiera mi się przeglądarka np. firefox, gdzie wykonuję różne operacje i w pewnym momencie muszę znać wynik wielu operacji. Czy jest możliwość uruchomienia w jakiś sposób konsoli? Próbowałem z konsolą w firefox-ie, ale tam nie wyświetlają się informacje przekazywane przez kod :(
Z góry dzięki za pomoc.
Jeśli chcesz mieć te informacje w konsoli przeglądarki to musisz je w jakiś sposób do niej przekazać, czyt. JS, po czym wywołać console.log().
Zastanów się tylko czy każdy klient powinien mieć możliwość podejrzenia tych wiadomości i skorzystania z informacji jakie ze sobą niosą.
To czego potrzebujesz wg mnie to logowanie, ale nie w przeglądarce. NLog, Serilog albo inna biblioteka powinny rozwiązać twój problem
Zgadzam się, prawdopodobnie potrzebujesz logowania (używam NLog i polecam). Możesz logować rzeczy do pliku, możesz też do okienka Output.
Bardzo łatwo się to obsługuje. Pobierz NuGetem NLog, a następnie:
W pliku Program.cs:
using Microsoft.Extensions.Logging;
using NLog.Web;
//
public static void Main(string[] args)
{
var logger = NLogBuilder.ConfigureNLog("nlog.config").GetCurrentClassLogger();
try
{
logger.Debug("Init main"); //żeby Ci wypisało, że apka się zaczęła
CreateWebHostBuilder(args).Build().Run();
}catch(Exception ex)
{
logger.Error(ex, "Stopped because of unhandled exception!");
throw;
}
finally
{
NLog.LogManager.Shutdown();
}
}
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.ConfigureLogging(log =>
{
log.ClearProviders();
log.SetMinimumLevel(LogLevel.Trace);
})
.UseNLog();
Tak konfigurujesz NLog. Potem w Startup.cs w ConfigureServices dodajesz sobie logowanie:
services.AddLogging();
Automatycznie masz do pliku wypluwane sporo logów - zapytania do bazy danych, błędy i warningi, a także cały routing.
Jeśli chcesz sam coś zalogować, to dependency injection:
public class MyService
{
ILogger<MyService> logger;
public MyService(ILogger<MyService> logger)
{
this.logger = logger;
}
}
A używasz np. tak:
logger.LogError("No i klops");
Musisz jeszcze pamiętać, żeby plik konfiguracyjny loggera (nlog.config) był w katalogu głównym aplikacji. Bo normalnie ląduje w kodzie.