Ohjelmointi

Tietojen kirjaaminen SQL Server -palvelimeen ASP.NET Core -sovelluksessa

Kirjaaminen on olennainen ominaisuus kaikille sovelluksille, koska se on tarpeen ongelmien havaitsemiseksi, tutkimiseksi ja virheenkorjaamiseksi. Serilog on kolmannen osapuolen avoimen lähdekoodin kirjasto, jonka avulla .NET-kehittäjät voivat kirjata jäsenneltyjä tietoja konsoliin, tiedostoihin ja useisiin muihin tietovarastoihin. Voit oppia lisää Serilogista aikaisemmasta viestistäni täältä.

Tässä artikkelissa käsitellään sitä, kuinka voimme käyttää Serilogia strukturoitujen tietojen kirjaamiseen SQL Server -tietokantaan. Jotta voit työskennellä tässä artikkelissa annettujen koodiesimerkkien kanssa, järjestelmässäsi on oltava asennettuna Visual Studio 2019. Jos sinulla ei vielä ole kopiota, voit ladata Visual Studio 2019 täältä.

Luo ASP.NET Core 3.0 -sovellusliittymäprojekti

Ensinnäkin, luodaan ASP.NET Core -projekti Visual Studiossa. Olettaen, että Visual Studio 2019 on asennettu järjestelmään, luo uusi ASP.NET Core -projekti Visual Studioon noudattamalla seuraavia ohjeita.

  1. Käynnistä Visual Studio IDE.
  2. Napsauta Luo uusi projekti.
  3. Valitse Luo uusi projekti -ikkunassa ”ASP.Net Core Web Application” näytetystä mallipohjaluettelosta.
  4. Napsauta Seuraava.
  5. Määritä seuraavan projektin nimi ja sijainti uuden Konfiguroi uusi projekti -ikkunassa.
  6. Napsauta Luo.
  7. Valitse Luo uusi ASP.Net Core -verkkosovellus -ikkunassa .NET Core ajonaikaiseksi ja ASP.NET Core 2.2 (tai uudempi) yläreunan avattavasta luettelosta. Käytän täällä ASP.NET Core 3.0: ta.
  8. Luo uusi ASP.NET Core API -sovellus valitsemalla projektimalliksi “API”.
  9. Varmista, että valintaruudut Ota Docker-tuki käyttöön ja Määritä HTTPS: lle ei ole valittu, koska emme käytä näitä ominaisuuksia täällä.
  10. Varmista, että todennukseksi on määritetty Ei todentamista, koska emme myöskään käytä todennusta.
  11. Napsauta Luo.

Tämä luo uuden ASP.NET Core API -projektin Visual Studioon. Valitse Ohjainten ratkaisukansio Solution Explorer -ikkunassa ja napsauta “Lisää -> Ohjain…” luodaksesi uuden ohjaimen nimeltä DefaultController. Käytämme tätä projektia tämän artikkelin seuraavissa osioissa.

Asenna NuGet-paketit Serilogia varten

Jos haluat työskennellä Serilogin kanssa, sinun on asennettava Serilog-paketit NuGetistä. Voit tehdä tämän joko Visual Studio 2019 IDE: n sisällä olevan NuGet-paketinhallinnan kautta tai suorittamalla seuraavat komennot NuGet-paketinhallintakonsolissa:

Asenna paketti Serilog

Asennuspaketti Serilog.AspNetCore

Asenna paketti Serilog.Sinks.MSSqlServer

Install-Package Serilog.Settings.Configuration

Alusta Serilog ASP.NET Core -ohjelman Program.cs-tiedostossa

Seuraava koodinpätkä kuvaa, kuinka voit kytkeä Serilogin ASP.NET Core -sovellukseen. Huomaa, kuinka UseSerilog () -laajennusmenetelmää on käytetty asettamaan Serilog lokitietojen tarjoajaksi.

julkinen staattinen IWebHost BuildWebHost (merkkijono [] args) =>

WebHost.CreateDefaultBuilder (argumentit)

.UseStartup ()

.Serilog ()

.Rakentaa();

Rakenna esimerkki web-isännästä ASP.NET Core -palvelimeen

Tarvitsemme luonnollisesti sovelluksen, joka havainnollistaa Serilogin käyttöä. Tässä on ohjelmaluokan täydellinen lähdekoodi esimerkkisovelluksellemme. Huomaa, kuinka olemme määrittäneet ja rakentaneet verkkoisännän.

   julkisen luokan ohjelma

    {

public static void Main (merkkijono [] args)

        {

IConfigurationRoot configuration = uusi

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

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

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

(kokoonpano) .CreateLogger ();

BuildWebHost (argumentit). Suorita ();

        }

julkinen staattinen IWebHost BuildWebHost (merkkijono [] args) =>

WebHost.CreateDefaultBuilder (argumentit)

.UseStartup ()

.Serilog ()

.Rakentaa();

    }

Muista sisällyttää Serilog-nimitila ohjelmasi alla olevan kuvan mukaisesti:

käyttämällä Serilogia;

Määritä tietokantayhteysasetukset ASP.NET Core -sovelluksessa

Kun luot uuden ASP.NET-ydinprojektin Visual Studiossa, appsettings.json-tiedosto luodaan oletusarvoisesti. Tässä voit määrittää tietokannan yhteysmerkkijonon ja muut määritystiedot. Avaa aiemmin luomamme projektin appsettings.json-tiedosto ja kirjoita seuraavat tiedot:

{

"Serilog": {

"MinimumLevel": "Tiedot",

"Kirjoittaa": [

      {

"Nimi": "MSSqlServer",

"Args": {

"connectionString": "Tietolähde = LAPTOP-ULJMOJQ5; Alustava

Luettelo = tutkimus;

Käyttäjätunnus = joydip; Salasana = sa123 #; ",

"tableName": "Loki",

"autoCreateSqlTable": tosi

        }

      }

    ]

  }

}

Luo tietokantataulukko tietojen kirjaamiseksi SQL Serveriin

Voit myös luoda lokitaulukon itse. Alla on komentosarja, jonka avulla voit luoda lokitaulukon SQL Server -tietokantaan.

LUO TAULUKKO [Loki] (

[Id] int TUNNISUUS (1,1) EI NULL,

[Viesti] nvarchar (enintään) NULL,

[MessageTemplate] nvarchar (enintään) NULL,

[Taso] nvarchar (enintään) NULL,

[TimeStamp] datetimeoffset (7) EI NULL,

[Poikkeus] nvarchar (max) NULL,

[Ominaisuudet] nvarchar (enintään) NULL

RAJOITUS [PK_Log]

ENSIMMÄINEN AVAINKESKUS ([Id] ASC)

)

Kun suoritat sovelluksen, uusi taulukko nimeltä Loki luodaan ja ASP.NET Core -käynnistystapahtumat kirjataan sinne. Alla olevassa kuvassa 1 on lokitaulukon sisään kirjatut tiedot.

Lokitiedot toimintamenetelmissä ASP.NET Core -sovelluksessa

Voit hyödyntää riippuvuuden injektiota injektoidaksesi logger-esiintymän ohjaimeen alla olevan koodinpätkän mukaisesti:

public class DefaultController: Ohjain

{

yksityinen vain luku ILogger _logger;

public DefaultController (ILogger-kirjaaja)

   {

_logger = kirjaaja;

   }

}

Seuraava koodinpätkä kuvaa, kuinka voit hyödyntää Serilogia ohjaimen toimintatavoissa tietojen kirjaamiseen.

public class DefaultController: Ohjain

    {

yksityinen vain luku ILogger _logger;

public DefaultController (ILogger-kirjaaja)

        {

_logger = kirjaaja;

        }

julkinen IActionResult-indeksi ()

        {

_logger.LogInformation ("Hei maailma");

palaa Näytä ();

        }

    }

Serilog liitetään ASP.NET Core -ekosysteemiin hienosti, vaikka se ei olekaan .NET Core -sovelluksesta, mikä tekee jäsennellystä puunkorjuusta helppoa ja kätevää. Serilog käyttää myös kymmeniä nieluja hyödyntämällä lokeja moniin erilaisiin lokikohteisiin tekstitiedostoista tietokantoihin AWS-, Azure- ja Google Cloud -palveluihin. Tässä viestissä olen osoittanut, kuinka voimme työskennellä Microsoft SQL Server -alustan kanssa. Keskustelen Serilogin muista lisäominaisuuksista tulevassa viestissä täällä.