Programmēšana

Kā reģistrēt datus SQL Server ASP.NET Core

Reģistrēšana ir būtiska jebkuras lietojumprogrammas iezīme, jo tā ir nepieciešama problēmu atklāšanai, izmeklēšanai un atkļūdošanai. Serilog ir trešās puses atvērtā pirmkoda bibliotēka, kas ļauj .NET izstrādātājiem reģistrēt strukturētos datus konsolē, failos un vairākos citos datu krātuvēs. Jūs varat uzzināt vairāk par Serilog no manas iepriekšējās ziņas šeit.

Šajā rakstā ir apspriests, kā mēs varam izmantot Serilog strukturētu datu reģistrēšanai SQL Server datu bāzē. Lai strādātu ar šajā rakstā sniegtajiem kodu piemēriem, sistēmā jābūt instalētai Visual Studio 2019. Ja jums vēl nav kopijas, varat lejupielādēt Visual Studio 2019 šeit.

Izveidojiet ASP.NET Core 3.0 API projektu

Vispirms izveidosim ASP.NET Core projektu Visual Studio. Pieņemot, ka Visual Studio 2019 ir instalēta jūsu sistēmā, veiciet tālāk norādītās darbības, lai izveidotu jaunu ASP.NET Core projektu Visual Studio.

  1. Palaidiet Visual Studio IDE.
  2. Noklikšķiniet uz “Izveidot jaunu projektu”.
  3. Logā “Izveidot jaunu projektu” parādīto veidņu sarakstā atlasiet “ASP.Net Core Web Application”.
  4. Noklikšķiniet uz Tālāk.
  5. Nākamajā logā “Konfigurēt jauno projektu” norādiet jaunā projekta nosaukumu un vietu.
  6. Noklikšķiniet uz Izveidot.
  7. Logā “Izveidot jaunu ASP.Net Core tīmekļa lietojumprogrammu” augšpusē esošajā nolaižamajā sarakstā atlasiet .NET Core kā izpildlaiku un ASP.NET Core 2.2 (vai jaunāku). Es šeit izmantošu ASP.NET Core 3.0.
  8. Atlasiet “API” kā projekta veidni, lai izveidotu jaunu ASP.NET Core API lietojumprogrammu.
  9. Pārliecinieties, vai nav atzīmētas izvēles rūtiņas “Iespējot Docker atbalstu” un “Konfigurēt HTTPS”, jo mēs šeit neizmantosim šīs funkcijas.
  10. Pārliecinieties, ka autentifikācija ir iestatīta kā “Nav autentifikācijas”, jo mēs arī neizmantosim autentifikāciju.
  11. Noklikšķiniet uz Izveidot.

Tādējādi Visual Studio tiks izveidots jauns ASP.NET Core API projekts. Logā Solution Explorer atlasiet Controllers solution mapi un noklikšķiniet uz “Add -> Controller…”, lai izveidotu jaunu kontrolleri ar nosaukumu DefaultController. Mēs izmantosim šo projektu šī raksta nākamajās sadaļās.

Instalējiet Serilog NuGet pakotnes

Lai strādātu ar Serilog, jums jāinstalē Serilog paketes no NuGet. To var izdarīt, izmantojot NuGet pakotņu pārvaldnieku Visual Studio 2019 IDE, vai arī izpildot šādas komandas NuGet pakotņu pārvaldnieka konsolē:

Install-Package Serilog

Install-Package Serilog.AspNetCore

Install-Package Serilog.Sinks.MSSqlServer

Install-Package Serilog.Settings.Configuration

Inicializējiet Serilog programmā Program.cs programmā ASP.NET Core

Šis koda fragments parāda, kā jūs varat pievienot Serilog ASP.NET Core. Ievērojiet, kā paplašinājuma UseSerilog () metode ir izmantota, lai Serilog iestatītu kā reģistrēšanas pakalpojumu sniedzēju.

publiskais statiskais IWebHost BuildWebHost (virkne [] args) =>

WebHost.CreateDefaultBuilder (argumenti)

.UseStartup ()

. UseSerilog ()

.Būvēt();

Veidojiet tīmekļa mitinātāja piemēru ASP.NET Core

Protams, mums būs nepieciešama lietojumprogramma, lai ilustrētu Serilog lietošanu. Šeit ir pilns programmas klases avota kods mūsu lietotnes piemēram. Ievērojiet, kā mēs esam konfigurējuši un izveidojuši tīmekļa mitinātāju.

   sabiedrības klases programma

    {

public static void Main (string [] args)

        {

IConfigurationRoot configuration = jauns

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

pēc izvēles: false, reloadOnChange: true). Built ();

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

(konfigurācija) .CreateLogger ();

BuildWebHost (argumenti). Palaist ();

        }

publiskais statiskais IWebHost BuildWebHost (virkne [] args) =>

WebHost.CreateDefaultBuilder (argumenti)

.UseStartup ()

. UseSerilog ()

.Būvēt();

    }

Neaizmirstiet savā programmā iekļaut Serilog nosaukumvietu, kā parādīts zemāk:

izmantojot Serilog;

Konfigurējiet datu bāzes savienojuma iestatījumus programmā ASP.NET Core

Veidojot jaunu ASP.NET Core projektu programmā Visual Studio, pēc noklusējuma tiek izveidots fails appsettings.json. Šeit varat norādīt datu bāzes savienojuma virkni un citu konfigurācijas informāciju. Atveriet failu appsettings.json no projekta, kuru mēs izveidojām iepriekš, un ievadiet šādu informāciju:

{

"Serilog": {

"MinimumLevel": "Informācija",

"Rakstīt": [

      {

"Nosaukums": "MSSqlServer",

"Args": {

"connectionString": "Datu avots = LAPTOP-ULJMOJQ5; Sākotnējais

Katalogs = Pētījumi;

Lietotāja ID = joydip; Parole = sa123 #; ",

"tableName": "Žurnāls",

"autoCreateSqlTable": taisnība

        }

      }

    ]

  }

}

Izveidojiet datu bāzes tabulu, lai reģistrētu datus SQL Server

Varat arī pats izveidot žurnālu tabulu. Zemāk ir skripts, kuru varat izmantot, lai izveidotu žurnāla tabulu SQL Server datu bāzē.

IZVEIDOT TABULU [Žurnāls] (

[Id] int IDENTITĀTE (1,1) NAV NULL,

[Ziņojums] nvarchar (maks.) NULL,

[MessageTemplate] nvarchar (maks.) NULL,

[Līmenis] nvarchar (maks.) NULL,

[TimeStamp] datetimeoffset (7) NAV NULL,

[Izņēmums] nvarchar (maks.) NULL,

[Rekvizīti] nvarchar (maks.) NULL

IEROBEŽOJUMS [PK_Log]

PAMATSLĒDZĒJS AIZSLĒGTS ([Id] ASC)

)

Palaidot lietojumprogrammu, tiks izveidota jauna tabula ar nosaukumu Log un tajā tiks reģistrēti ASP.NET Core startēšanas notikumi. Zemāk redzamajā 1. attēlā parādīti dati, kas ir reģistrēti žurnālā Žurnāls.

Datu reģistrēšana darbības metodēs ASP.NET Core

Varat izmantot atkarības injekciju, lai ievadītu reģistrētāja gadījumu savā kontrolierī, kā parādīts zemāk esošajā koda fragmentā:

publiskā klase DefaultController: kontrolieris

{

privāts tikai lasāms ILogger _logger;

publiskais DefaultController (ILogger reģistrētājs)

   {

_logger = reģistrētājs;

   }

}

Šis koda fragments parāda, kā datu reģistrēšanai varat izmantot Serilog priekšrocības kontroliera darbības metodēs.

publiskā klase DefaultController: kontrolieris

    {

privāts tikai lasāms ILogger _logger;

public DefaultController (ILogger reģistrētājs)

        {

_logger = reģistrētājs;

        }

publiskais IActionResult indekss ()

        {

_logger.LogInformation ("Sveika pasaule");

atgriezties View ();

        }

    }

Neskatoties uz to, ka Serilog ir neatkarīgs no .NET Core, tas lieliski pievienojas ASP.NET Core ekosistēmai, padarot strukturētu mežizstrādi ērtu un ērtu. Serilog izmanto arī desmitiem izlietņu, lai nosūtītu žurnālus daudziem dažādiem mežizstrādes mērķiem, sākot no teksta failiem līdz datu bāzēm un beidzot ar AWS, Azure un Google Cloud pakalpojumiem. Šajā amatā es parādīju, kā mēs varam strādāt ar Microsoft SQL Server izlietni. Turpmākajā ierakstā šeit es apspriedīšu citas Serilog uzlabotās funkcijas.

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