Programiranje

Kako zapisati podatke v SQL Server v ASP.NET Core

Beleženje je bistvena lastnost vsake aplikacije, saj je potrebna za odkrivanje, preiskovanje in odpravljanje napak. Serilog je neodvisna odprtokodna knjižnica, ki razvijalcem .NET omogoča, da strukturirane podatke beležijo v konzolo, datoteke in več drugih vrst shramb podatkov. Več o Serilogu lahko izveste iz mojega prejšnjega prispevka tukaj.

Ta članek razpravlja o tem, kako lahko s pomočjo Seriloga zapisujemo strukturirane podatke v bazo podatkov SQL Server. Če želite delati s primeri kod v tem članku, morate imeti v sistemu nameščen Visual Studio 2019. Če kopije še nimate, lahko Visual Studio 2019 prenesete tukaj.

Ustvarite projekt API-ja ASP.NET Core 3.0

Najprej ustvarimo projekt ASP.NET Core v Visual Studio. Ob predpostavki, da je Visual Studio 2019 nameščen v vašem sistemu, sledite spodnjim korakom, da ustvarite nov projekt ASP.NET Core v Visual Studio.

  1. Zaženite Visual Studio IDE.
  2. Kliknite »Ustvari nov projekt«.
  3. V oknu »Ustvari nov projekt« na seznamu predlog izberite »ASP.Net Core Web Application«.
  4. Kliknite Naprej.
  5. V naslednjem oknu »Konfiguriranje novega projekta« določite ime in mesto novega projekta.
  6. Kliknite Ustvari.
  7. V oknu »Ustvari novo spletno aplikacijo ASP.Net Core« izberite .NET Core kot izvajalno okolje in ASP.NET Core 2.2 (ali novejšo) s spustnega seznama na vrhu. Tukaj bom uporabljal ASP.NET Core 3.0.
  8. Kot predlogo projekta izberite »API«, da ustvarite novo aplikacijo ASP.NET Core API.
  9. Prepričajte se, da sta potrditveni polji »Omogoči podporo za Docker« in »Konfiguriranje za HTTPS« odstranjeni, saj tukaj ne bomo uporabljali teh funkcij.
  10. Prepričajte se, da je preverjanje pristnosti nastavljeno na »Brez preverjanja pristnosti«, saj tudi preverjanja pristnosti ne bomo uporabljali.
  11. Kliknite Ustvari.

To bo ustvarilo nov projekt API-ja ASP.NET Core v Visual Studio. Izberite mapo rešitve Controllers v oknu Solution Explorer in kliknite »Add -> Controller ...«, da ustvarite nov krmilnik z imenom DefaultController. Ta projekt bomo uporabili v naslednjih oddelkih tega članka.

Namestite pakete NuGet za Serilog

Če želite delati s Serilogom, namestite pakete Serilog iz NuGet. To lahko storite prek upravitelja paketov NuGet znotraj IDE Visual Studio 2019 ali pa tako, da na konzoli upravitelja paketov NuGet izvedete naslednje ukaze:

Namestite paket Serilog

Namestite-paket Serilog.AspNetCore

Install-Package Serilog.Sinks.MSSqlServer

Namestite-paket Serilog.Settings.Configuration

Inicializirajte Serilog v programu Program.cs v ASP.NET Core

Naslednji delček kode prikazuje, kako lahko Serilog priključite v ASP.NET Core. Upoštevajte, kako je bila metoda razširitve UseSerilog () uporabljena za nastavitev Seriloga kot ponudnika beleženja.

javni statični IWebHost BuildWebHost (niz [] args) =>

WebHost.CreateDefaultBuilder (argumenti)

.UseStartup ()

.UseSerilog ()

.Build ();

Zgradite primer spletnega gostitelja v ASP.NET Core

Seveda bomo potrebovali aplikacijo za ponazoritev uporabe Seriloga. Tu je celotna izvorna koda razreda Program za naš primer aplikacije. Upoštevajte, kako smo konfigurirali in izdelali spletnega gostitelja.

   program javnega razreda

    {

javna statična praznina Main (string [] args)

        {

IConfigurationRoot konfiguracija = novo

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

neobvezno: false, reloadOnChange: true) .Build ();

Log.Logger = nova LoggerConfiguration (). ReadFrom.Configuration

(konfiguracija) .CreateLogger ();

BuildWebHost (args) .Run ();

        }

javni statični IWebHost BuildWebHost (niz [] args) =>

WebHost.CreateDefaultBuilder (argumenti)

.UseStartup ()

.UseSerilog ()

.Build ();

    }

V svoj program ne pozabite vključiti imenskega prostora Serilog, kot je prikazano spodaj:

z uporabo Seriloga;

Konfigurirajte nastavitve povezave z bazo podatkov v ASP.NET Core

Ko v Visual Studio ustvarite nov projekt ASP.NET Core, se privzeto ustvari datoteka appsettings.json. Tu lahko določite niz povezave z bazo podatkov in druge informacije o konfiguraciji. Odprite datoteko appsettings.json iz projekta, ki smo ga že ustvarili, in vnesite naslednje podatke:

{

"Serilog": {

"MinimumLevel": "Informacije",

"WriteTo": [

      {

"Name": "MSSqlServer",

"Args": {

"connectionString": "Vir podatkov = LAPTOP-ULJMOJQ5; Začetno

Katalog = Raziskave;

Id uporabnika = joydip; Geslo = sa123 #; ",

"tableName": "Dnevnik",

"autoCreateSqlTable": true

        }

      }

    ]

  }

}

Ustvarite tabelo baze podatkov za beleženje podatkov v SQL Server

Tabelo dnevnikov boste morda želeli ustvariti tudi sami. Spodaj je skript, ki ga lahko uporabite za ustvarjanje tabele dnevnika v zbirki podatkov SQL Server.

USTVARI TABELO [Dnevnik] (

[Id] int IDENTITY (1,1) NOT NULL,

[Sporočilo] nvarchar (max) NULL,

[MessageTemplate] nvarchar (največ) NULL,

[Level] nvarchar (max) NULL,

[TimeStamp] datetimeoffset (7) NOT NULL,

[Izjema] nvarchar (max) NULL,

[Lastnosti] nvarchar (največ) NULL

OMEJITEV [PK_Log]

PRIMARNI KLJUČ KLASIRAN ([Id] ASC)

)

Ko zaženete aplikacijo, bo ustvarjena nova tabela z imenom Log in tam bodo zabeleženi zagonski dogodki ASP.NET Core. Slika 1 spodaj prikazuje podatke, ki so bili zabeleženi v tabeli Dnevnik.

Podatke zapisujte v akcijske metode v ASP.NET Core

Injekcijo odvisnosti lahko izkoristite za vbrizganje primerka zapisovalnika v krmilnik, kot je prikazano v spodnjem delčku kode:

javni razred DefaultController: krmilnik

{

zasebno samo za branje ILogger _logger;

javni DefaultController (zapisovalnik ILogger)

   {

_logger = logger;

   }

}

Naslednji delček kode ponazarja, kako lahko izkoristite Serilog v načinih delovanja krmilnika za beleženje podatkov.

javni razred DefaultController: krmilnik

    {

zasebno samo za branje ILogger _logger;

javni DefaultController (zapisovalnik ILogger)

        {

_logger = logger;

        }

javni indeks IActionResult ()

        {

_logger.LogInformation ("Hello World");

vrnitev View ();

        }

    }

Čeprav je Serilog neodvisen od .NET Core, se Serilog lepo vključi v ekosistem ASP.NET Core, zaradi česar je strukturirano beleženje enostavno in priročno. Serilog izkoristi tudi desetine ponorov, da pošlje dnevnike na različne cilje beleženja, od besedilnih datotek do baz podatkov do storitev AWS, Azure in Google Cloud. V tej objavi sem predstavil, kako lahko delamo s pomivalnim koritom Microsoft SQL Server. O drugih naprednih funkcijah Seriloga bom razpravljal v prihodnjem prispevku tukaj.

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