Asp.net core a konsola

0

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.

2

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

0

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.

1 użytkowników online, w tym zalogowanych: 0, gości: 1