Programovanie

Ako prihlásiť údaje na server SQL Server v ASP.NET Core

Protokolovanie je základnou vlastnosťou každej aplikácie, pretože je nevyhnutné na zisťovanie, vyšetrovanie a ladenie problémov. Serilog je knižnica open source tretích strán, ktorá vývojárom .NET umožňuje zaznamenávať štruktúrované údaje do konzoly, súborov a niekoľkých ďalších druhov dátových skladov. Viac o Serilogu sa dozviete z môjho predchádzajúceho príspevku tu.

Tento článok pojednáva o tom, ako môžeme použiť Serilog na prihlásenie štruktúrovaných údajov do databázy servera SQL Server. Ak chcete pracovať s príkladmi kódu uvedenými v tomto článku, mali by ste mať vo svojom systéme nainštalovanú aplikáciu Visual Studio 2019. Ak ešte nemáte kópiu, môžete si tu stiahnuť Visual Studio 2019.

Vytvorte projekt rozhrania ASP.NET Core 3.0 API

Najprv si vytvoríme projekt ASP.NET Core v Visual Studio. Za predpokladu, že je vo vašom systéme nainštalované Visual Studio 2019, postupujte podľa krokov uvedených nižšie a vytvorte nový projekt ASP.NET Core v Visual Studio.

  1. Spustite Visual Studio IDE.
  2. Kliknite na „Vytvoriť nový projekt“.
  3. V okne „Vytvoriť nový projekt“ zo zoznamu zobrazených šablón vyberte možnosť „Webová aplikácia ASP.Net Core“.
  4. Kliknite na Ďalej.
  5. V nasledujúcom okne „Konfigurácia nového projektu“ zadajte názov a umiestnenie nového projektu.
  6. Kliknite na tlačidlo Vytvoriť.
  7. V okne „Vytvoriť novú webovú aplikáciu ASP.Net Core“ vyberte z rozbaľovacieho zoznamu v hornej časti .NET Core ako runtime a ASP.NET Core 2.2 (alebo novší). Budem tu používať ASP.NET Core 3.0.
  8. Vyberte „API“ ako šablónu projektu a vytvorte novú aplikáciu API ASP.NET Core.
  9. Skontrolujte, či nie sú začiarknuté políčka „Povoliť podporu Docker“ a „Konfigurovať pre HTTPS“, pretože tu nebudeme tieto funkcie používať.
  10. Skontrolujte, či je overenie nastavené na „Bez overenia“, pretože tiež nebudeme používať overenie.
  11. Kliknite na tlačidlo Vytvoriť.

Týmto sa vytvorí nový projekt rozhrania ASP.NET Core API v Visual Studio. Vyberte priečinok Riešenie ovládačov v okne Prieskumníka riešení a kliknutím na „Pridať -> Ovládač ...“ vytvorte nový ovládač s názvom DefaultController. Tento projekt použijeme v ďalších častiach tohto článku.

Nainštalujte si balíčky NuGet pre Serilog

Ak chcete pracovať so Serilogom, mali by ste si nainštalovať balíčky Serilog z NuGet. Môžete to urobiť buď prostredníctvom správcu balíkov NuGet vo vnútri Visual Studio 2019 IDE, alebo vykonaním nasledujúcich príkazov v konzole správcu balíkov NuGet:

Install-Package Serilog

Install-Package Serilog.AspNetCore

Install-Package Serilog.Sinks.MSSqlServer

Install-Package Serilog.Settings.Configuration

Inicializujte Serilog v Program.cs v ASP.NET Core

Nasledujúci úryvok kódu ilustruje, ako môžete zapojiť Serilog do ASP.NET Core. Všimnite si, ako bola použitá metóda rozšírenia UseSerilog () na nastavenie Serilogu ako poskytovateľa protokolovania.

public static IWebHost BuildWebHost (string [] args) =>

WebHost.CreateDefaultBuilder (args)

.UseStartup ()

.UseSerilog ()

.Build ();

Zostavte si príklad webového hostiteľa v ASP.NET Core

Prirodzene, budeme potrebovať aplikáciu na ilustráciu použitia Serilogu. Tu je kompletný zdrojový kód triedy Program pre našu vzorovú aplikáciu. Všimnite si, ako sme nakonfigurovali a vytvorili webového hostiteľa.

   program verejnej triedy

    {

public static void Main (reťazec [] args)

        {

Konfigurácia IConfigurationRoot = nová

ConfigurationBuilder (). AddJsonFile ("appsettings.json",

voliteľné: false, reloadOnChange: true) .Build ();

Log.Logger = nový LoggerConfiguration (). ReadFrom.Configuration

(konfigurácia) .CreateLogger ();

BuildWebHost (args) .Run ();

        }

public static IWebHost BuildWebHost (string [] args) =>

WebHost.CreateDefaultBuilder (args)

.UseStartup ()

.UseSerilog ()

.Build ();

    }

Nezabudnite do svojho programu zahrnúť priestor názvov Serilog, ako je uvedené nižšie:

pomocou Serilogu;

Nakonfigurujte nastavenia pripojenia k databáze v ASP.NET Core

Pri vytváraní nového projektu ASP.NET Core v Visual Studio sa predvolene vytvorí súbor appsettings.json. Tu môžete určiť reťazec pripojenia k databáze a ďalšie informácie o konfigurácii. Otvorte súbor appsettings.json z projektu, ktorý sme vytvorili skôr, a zadajte nasledujúce informácie:

{

"Serilog": {

"MinimumLevel": "Informácie",

"Písať": [

      {

"Name": "MSSqlServer",

"Args": {

"connectionString": "Zdroj údajov = LAPTOP-ULJMOJQ5; počiatočný

Katalóg = výskum;

ID používateľa = joydip; Heslo = sa123 #; ",

"tableName": "Log",

"autoCreateSqlTable": true

        }

      }

    ]

  }

}

Vytvorte databázovú tabuľku na zaznamenávanie údajov na serveri SQL Server

Možno budete chcieť vytvoriť tabuľku protokolov aj vy. Nižšie je uvedený skript, ktorý môžete použiť na vytvorenie tabuľky protokolu v databáze servera SQL Server.

VYTVORIŤ TABUĽKU [Log] (

[Id] int IDENTITA (1,1) NIE NULL,

[Správa] nvarchar (max) NULL,

[MessageTemplate] nvarchar (max) NULL,

[Úroveň] nvarchar (max) NULL,

[TimeStamp] datetimeoffset (7) NIE NULL,

[Výnimka] nvarchar (max) NULL,

[Vlastnosti] nvarchar (max) NULL

OBMEDZENIE [PK_Log]

PRIMÁRNY KLÍČ CLUSTEROVANÝ ([Id] ASC)

)

Po spustení aplikácie sa vytvorí nová tabuľka s názvom Protokol a budú sa tam zaznamenávať udalosti spustenia ASP.NET Core. Obrázok 1 nižšie zobrazuje údaje, ktoré boli zaznamenané do tabuľky protokolu.

Prihláste údaje v metódach akcie v ASP.NET Core

Môžete použiť injekciu závislosti na vloženie inštancie loggeru do vášho radiča, ako je uvedené v útržku kódu nižšie:

verejná trieda DefaultController: radič

{

súkromné ​​iba na čítanie ILogger _logger;

public DefaultController (ILogger logger)

   {

_logger = logger;

   }

}

Nasledujúci úryvok kódu ilustruje, ako môžete využiť protokol Serilog v akčných metódach vášho radiča na zaznamenávanie údajov.

verejná trieda DefaultController: radič

    {

súkromné ​​iba na čítanie ILogger _logger;

public DefaultController (ILogger logger)

        {

_logger = logger;

        }

verejný index IActionResult ()

        {

_logger.LogInformation ("Hello World");

návrat Zobraziť ();

        }

    }

Aj keď je Serilog nezávislý od .NET Core, zapojuje sa do ekosystému ASP.NET Core pekne, takže je štruktúrované protokolovanie ľahké a pohodlné. Serilog tiež využíva desiatky umývadiel na zasielanie protokolov do mnohých rôznych cieľov protokolovania, od textových súborov cez databázy po služby AWS, Azure a Google Cloud. V tomto príspevku som predviedol, ako môžeme pracovať s umývadlom servera Microsoft SQL Server. O ďalších pokročilých funkciách Serilogu sa budem diskutovať v budúcom príspevku tu.

$config[zx-auto] not found$config[zx-overlay] not found