Programavimas

Kaip registruoti duomenis į „SQL Server“ naudojant ASP.NET Core

Registravimas yra esminis bet kurios programos bruožas, nes jis yra būtinas norint nustatyti, tirti ir derinti problemas. „Serilog“ yra trečiosios šalies atvirojo kodo biblioteka, leidžianti .NET kūrėjams registruoti struktūrizuotus duomenis į konsolę, failus ir kelias kitas duomenų saugyklas. Daugiau apie „Serilog“ galite sužinoti iš mano ankstesnio įrašo čia.

Šiame straipsnyje aptariama, kaip galime naudoti „Serilog“ struktūrizuotiems duomenims prisijungti prie „SQL Server“ duomenų bazės. Norėdami dirbti su šiame straipsnyje pateiktais kodų pavyzdžiais, sistemoje turite būti įdiegę „Visual Studio 2019“. Jei dar neturite kopijos, galite atsisiųsti „Visual Studio 2019“ čia.

Sukurkite ASP.NET Core 3.0 API projektą

Pirmiausia sukurkime ASP.NET Core projektą „Visual Studio“. Darant prielaidą, kad „Visual Studio 2019“ yra įdiegta jūsų sistemoje, atlikite toliau nurodytus veiksmus, kad sukurtumėte naują „ASP.NET Core“ projektą „Visual Studio“.

  1. Paleiskite „Visual Studio IDE“.
  2. Spustelėkite „Sukurti naują projektą“.
  3. Lange „Kurti naują projektą“ iš rodomų šablonų sąrašo pasirinkite „ASP.Net Core Web Application“.
  4. Spustelėkite Pirmyn.
  5. Tada rodomame lange „Konfigūruoti naują projektą“ nurodykite naujo projekto pavadinimą ir vietą.
  6. Spustelėkite Sukurti.
  7. Lange „Kurti naują ASP.Net pagrindinę žiniatinklio programą“ viršuje esančiame išskleidžiamajame sąraše pasirinkite .NET Core kaip vykdymo laiką ir ASP.NET Core 2.2 (ar naujesnę). Čia naudosiu ASP.NET Core 3.0.
  8. Pasirinkite „API“ kaip projekto šabloną, kad sukurtumėte naują ASP.NET Core API programą.
  9. Įsitikinkite, kad nepažymėti žymės langeliai „Įgalinti„ Docker “palaikymą“ ir „Konfigūruoti HTTPS“, nes čia nenaudosime tų funkcijų.
  10. Įsitikinkite, kad autentifikavimas nustatytas kaip „Be autentifikavimo“, nes mes taip pat nenaudosime autentifikavimo.
  11. Spustelėkite Sukurti.

Tai sukurs naują ASP.NET Core API projektą „Visual Studio“. Lange Solution Explorer pasirinkite „Controllers solution“ aplanką ir spustelėkite „Add -> Controller…“, kad sukurtumėte naują valdiklį pavadinimu „DefaultController“. Šį projektą panaudosime tolesniuose šio straipsnio skyriuose.

Įdiekite „Serilog“ „NuGet“ paketus

Norėdami dirbti su „Serilog“, turėtumėte įdiegti „Serilog“ paketus iš „NuGet“. Tai galite padaryti naudodami „NuGet“ paketų tvarkyklę „Visual Studio 2019 IDE“ arba vykdydami šias komandas „NuGet“ paketų tvarkyklės konsolėje:

„Install-Package Serilog“

„Install-Package Serilog.AspNetCore“

„Install-Package Serilog.Sinks.MSSqlServer“

„Install-Package Serilog“. Nustatymai. Konfigūracija

Inicializuokite „Serilog“ programoje „ASP.NET Core“

Šis kodo fragmentas parodo, kaip galite prijungti „Serilog“ prie ASP.NET Core. Atkreipkite dėmesį, kaip „UseSerilog“ () plėtinio metodas buvo naudojamas nustatyti „Serilog“ kaip žurnalų teikėją.

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

„WebHost.CreateDefaultBuilder“ (argumentai)

.UseStartup ()

. UseSerilog ()

.Pastatykite ();

Sukurkite žiniatinklio prieglobos pavyzdį „ASP.NET Core“

Natūralu, kad mums reikės programos, kuri iliustruoja „Serilog“ naudojimą. Čia pateikiamas visas programos pavyzdžio šaltinis. Atkreipkite dėmesį, kaip sukonfigūravome ir sukūrėme žiniatinklio prieglobą.

   visuomenės klasės programa

    {

public static void Main (string [] args)

        {

„IConfigurationRoot“ konfigūracija = nauja

„ConfigurationBuilder“ (). „AddJsonFile“ („appsettings.json“,

pasirenkama: false, reloadOnChange: true). Pastatykite ();

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

(konfigūracija) .CreateLogger ();

„BuildWebHost“ (argumentai). Vykdyti ();

        }

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

„WebHost.CreateDefaultBuilder“ (argumentai)

.UseStartup ()

. UseSerilog ()

.Pastatykite ();

    }

Nepamirškite įtraukti „Serilog“ vardų srities į savo programą, kaip parodyta žemiau:

naudojant Serilog;

Konfigūruokite duomenų bazės ryšio parametrus sistemoje ASP.NET Core

Kai sukuriate naują „ASP.NET Core“ projektą „Visual Studio“, pagal numatytuosius nustatymus sukuriamas failas „appsettings.json“. Čia galite nurodyti duomenų bazės ryšio eilutę ir kitą konfigūracijos informaciją. Atidarykite anksčiau sukurto projekto failą appsettings.json ir įveskite šią informaciją:

{

„Serilog“: {

"MinimumLevel": "Informacija",

"Parašyti": [

      {

„Pavadinimas“: „MSSqlServer“,

„Argsas“: {

"connectionString": "Duomenų šaltinis = LAPTOP-ULJMOJQ5; Pradinis

Katalogas = tyrimai;

Vartotojo ID = joydip; Slaptažodis = sa123 #; ",

"tableName": "Žurnalas",

"autoCreateSqlTable": tiesa

        }

      }

    ]

  }

}

Sukurkite duomenų bazės lentelę duomenims registruoti „SQL Server“

Galbūt norėsite patys sukurti žurnalo lentelę. Žemiau yra scenarijus, kurį galite naudoti norėdami sukurti žurnalo lentelę SQL serverio duomenų bazėje.

SUKURTI LENTEL [[Žurnalas] (

[Id] int TAPATYBĖ (1,1) NENUOL,

[Žinutė] nvarchar (maks.) NULL,

[MessageTemplate] nvarchar (maks.) NULL,

[Level] nvarchar (maks.) NULL,

[TimeStamp] datetimeoffset (7) NOT NULL,

[Išimtis] nvarchar (maks.) NULL,

[Ypatybės] nvarchar (maks.) NULL

SUSITARIMAS [PK_Log]

PAGRINDINIS RAKTAS SUDERINTAS ([Id] ASC)

)

Paleidus programą bus sukurta nauja lentelė pavadinimu Žurnalas ir ten bus užregistruoti ASP.NET Core paleisties įvykiai. 1 paveiksle pateikiami duomenys, kurie buvo užregistruoti žurnalo lentelėje.

Duomenų registravimas veiksmų metoduose ASP.NET Core

Galite pasinaudoti priklausomybės injekcija, kad į valdiklį įvestumėte kaupiklio egzempliorių, kaip parodyta toliau pateiktame kodo fragmente:

public class DefaultController: valdiklis

{

privatus tik skaitomas ILogger _logger;

public DefaultController („ILogger logger“)

   {

_logger = logger;

   }

}

Šis kodo fragmentas parodo, kaip galite pasinaudoti „Serilog“ pranašumais valdiklio veiksmuose registruodami duomenis.

public class DefaultController: valdiklis

    {

privatus tik skaitomas ILogger _logger;

public DefaultController („ILogger logger“)

        {

_logger = logger;

        }

public IActionResult Index ()

        {

_logger.LogInformation („Labas pasaulis“);

grįžti View ();

        }

    }

Nors „Serilog“ nepriklauso nuo .NET Core, jis puikiai prisijungia prie ASP.NET Core ekosistemos, todėl struktūrizuotas kirtimas yra lengvas ir patogus. „Serilog“ taip pat naudojasi dešimtimis kriauklių ir siunčia žurnalus daugeliui skirtingų registravimo tikslų, pradedant tekstiniais failais, baigiant duomenų bazėmis, baigiant AWS, „Azure“ ir „Google Cloud“ paslaugomis. Šiame įraše aš parodžiau, kaip mes galime dirbti su „Microsoft SQL Server“ kriaukle. Aptarsiu kitas pažangias „Serilog“ funkcijas būsimame įraše čia.

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