Programmēšana

Kā reģistrēt datus Windows notikumu žurnālā C #

Windows operētājsistēma reģistrē datus Windows notikumu žurnālā ikreiz, kad rodas problēma. Šos datus varat skatīt, izmantojot Windows notikumu skatītāja rīku. Šajā rakstā ir apspriests, kā programmatiski strādāt ar Windows notikumu žurnālu C #.

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.

Visual Studio izveidojiet .NET Core konsoles lietojumprogrammas projektu

Vispirms izveidosim .NET Core konsoles lietojumprogrammas 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 Visual Studio izveidotu jaunu .NET Core konsoles lietojumprogrammas projektu.

  1. Palaidiet Visual Studio IDE.
  2. Noklikšķiniet uz “Izveidot jaunu projektu”.
  3. Logā “Izveidot jaunu projektu” parādīto veidņu sarakstā atlasiet “Console App (.NET Core)”.
  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.

Tādējādi Visual Studio 2019 tiks izveidots jauns .NET Core konsoles lietojumprogrammas projekts. Mēs izmantosim šo projektu, lai strādātu ar Windows notikumu žurnālu šī raksta nākamajās sadaļās.

Instalējiet EventLog NuGet pakotni

Lai varētu strādāt ar Windows notikumu žurnālu .NET Core lietojumprogrammās, jāinstalē Microsoft.Extensions.Logging.EventLog pakotne no NuGet. To var izdarīt, izmantojot NuGet pakešu pārvaldnieku Visual Studio 2019 IDE, vai arī izpildot šo komandu NuGet pakešu pārvaldnieka konsolē:

Install-Package Microsoft.Extensions.Logging.EventLog

Izveidojiet EventLog klases instanci C #

Lai izveidotu klases EventLog instanci un ierakstītu ierakstu Windows notikumu žurnālā, varat izmantot šādu kodu:

EventLog eventLog = jauns EventLog ();

eventLog.Source = "MyEventLogTarget";

eventLog.WriteEntry ("Šis ir testa ziņojums.", EventLogEntryType.Information);

Rakstīt EventLog instancei C #

Ja vēlaties reģistrēt datus no šīs lietojumprogrammas EventLog instances, varat izmantot šādu kodu:

string message = "Šis ir testa ziņojums.";

izmantojot [EventLog eventLog = new EventLog ("Lietojumprogramma"))

{

eventLog.Source = "Lietojumprogramma";

eventLog.WriteEntry (ziņojums, EventLogEntryType.Information);

}

Notīrīt EventLog gadījumu C #

Lai notīrītu EventLog instanci, varat izmantot šādu kodu:

EventLog eventLog = jauns EventLog ();

eventLog.Source = "MyEventLogSource";

eventLog.Clear ();

Šo notikuma žurnāla dzēšanai var izmantot šo koda fragmentu.

ja (EventLog.Exists ("MyEventLogTarget"))

{

EventLog.Delete ("MyEventLogTarget");

}

Izlasiet EventLog ierakstus C #

Visus žurnāla ierakstus varat izlasīt, izmantojot tālāk sniegto koda fragmentu:

EventLog eventLog = jauns EventLog ();

eventLog.Log = "MyEventLogTarget";

foreach (EventLogEntry ieraksts eventLog.Entries)

// Uzrakstiet savu pielāgoto kodu šeit

}

Izmantojiet NLog, lai ierakstītu žurnāla datus EventLog C #

Tagad mēs izmantosim NLog.WindowsEventLog pakotnes priekšrocības. Šī pakete ļaus mums izmantot NLog, lai sūtītu žurnāla datus uz EventLog, strādājot no .NET Core vides.

NLog.WindowsEventLog apkopo sarežģījumus, veidojot savienojumu ar EventLog un strādājot ar EventLog no ASP.NET Core. Jums vienkārši jāizsauc NLog metodes, kā jūs parasti darāt.

Tā kā datu reģistrēšanai EventLog izmantosim NLog, projektam pievienojiet šādu pakotni:

Install-Package NLog.WindowsEventLog

Izveidojiet mežizstrādes saskarni C #

Izveidojiet šo saskarni, lai žurnālus saglabātu kā informāciju, brīdinājumu, atkļūdošanu vai kļūdu.

publiskā saskarne ILogManager

    {

void LogInformation (virknes ziņojums);

void LogWarning (virknes ziņojums);

void LogDebug (virknes ziņojums);

void LogError (virknes ziņojums);

    }

Ievietojiet NLogManager klasi C #

Pēc tam izveidojiet klasi ar nosaukumu NLogManager, kas paplašina ILogManager saskarni un ievieš visas tās metodes.

publiskā klase NLogManager: ILogManager

    {

privāts statisks NLog.ILogger logger =

LogManager.GetCurrentClassLogger ();

public void LogDebug (virknes ziņojums)

        {

mest jaunu NotImplementedException ();

        }

public void LogError (virknes ziņojums)

        {

reģistrētājs. Kļūda (ziņojums);

        }

public void LogInformation (virknes ziņojums)

        {

mest jaunu NotImplementedException ();

        }

public void LogWarning (virknes ziņojums)

        {

mest jaunu NotImplementedException ();

        }

    }

Ievietojiet LogError metodi C #

Ņemiet vērā, ka vienkāršības labad šajā piemērā izmantosim metodi LogError un citas NLogManager klases metodes netiks ieviestas. Tagad sapratīsim, kā mēs varam izmantot NLog, lai reģistrētu datus EventLog. Modificējiet NLogManager klases LogError metodi, kā parādīts zemāk:

public void LogError (virknes ziņojums)

    {

Logger logger = LogManager.GetLogger ("EventLogTarget");

var logEventInfo = new LogEventInfo (LogLevel.Error,

reģistrētājs.Vārds, ziņojums);

logger.Log (logEventInfo);

    }

Ņemiet vērā, ka EventLogTarget ir tikai EventLog žurnāla mērķa nosaukums, kas jādefinē konfigurācijas failā nlog.config. Klase LogEventInfo ir jūsu žurnāla notikums, t.i., tas apzīmē žurnāla notikumu. Tā konstruktoram jums jānodod žurnāla līmenis, reģistrētāja nosaukums un reģistrējamais ziņojums.

Konfigurējiet NLog, lai reģistrētu datus EventLog C #

Lai programmatiski konfigurētu NLog, lai reģistrētu datus EventLog, varat izmantot šādu kodu:

var config = new NLog.Config.LoggingConfiguration ();

var logEventLog = new NLog.Targets.EventLogTarget ("EventLogTarget");

config.AddRule (NLog.LogLevel.Info, NLog.LogLevel.Error, logEventLog);

NLog.LogManager.Configuration = config;

Pilnīgs NLogManager piemērs C #

Pilns NLogManager klases avota kods ir norādīts zemāk.

publiskā klase NLogManager: ILogManager

    {

privāts statisks NLog.ILogger logger =

LogManager.GetCurrentClassLogger ();

public void LogDebug (virknes ziņojums)

        {

logger.Dugug (ziņojums);

        }

public void LogError (virknes ziņojums)

        {

Logger logger = LogManager.GetLogger ("EventLogTarget");

var logEventInfo = new LogEventInfo (LogLevel.Error,

reģistrētājs.Vārds, ziņojums);

logger.Log (logEventInfo);

        }

public void LogInformation (virknes ziņojums)

        {

reģistrētājs.Info (ziņojums);

        }

public void LogWarning (virknes ziņojums)

        {

reģistrētājs. Brīdināt (ziņojums);

        }

    }

Lai kontrolieros izmantotu NLogManager gadījumu, jums tas jāpievieno ConfigureServices metodē, kā parādīts tālāk sniegtajā koda fragmentā.

pakalpojumi.AddSingleton ();

Palaidot Windows notikumu skatītāju, jūs varat redzēt tajā reģistrēto kļūdas ziņojumu, kā parādīts zemāk esošajā ekrānuzņēmumā.

Windows notikumu žurnālu parasti izmanto, lai ierakstītu sistēmas notikumus, tīkla trafiku un saistītos datus, piemēram, drošību, veiktspēju utt. Jūs varat izmantot Windows notikumu žurnāla priekšrocības kā žurnāla mērķi, lai saglabātu lietojumprogrammas datus. Ja jūsu lietojumprogramma darbojas tikai operētājsistēmā Windows, Windows notikumu žurnāls ir lieliska iespēja saglabāt lietojumprogrammas notikumu žurnāla datus.

Kā izdarīt vairāk C #:

  • Kā izmantot ArrayPool un MemoryPool C #
  • Kā izmantot bufera klasi C #
  • Kā lietot HashSet C #
  • Kā izmantot nosauktos un izvēles parametrus C #
  • Kā salīdzināt C # kodu, izmantojot BenchmarkDotNet
  • Kā izmantot tekošas saskarnes un metodes saistīt ar C #
  • Kā testēt statiskās metodes C #
  • Kā pārveidot Dieva objektus C #
  • Kā izmantot ValueTask C #
  • Kā izmantot nemainīgumu C
  • Kā lietot const, tikai lasāmu un statisku C #
  • Kā izmantot datu anotācijas C #
  • Kā strādāt ar GUID C # 8
  • Kad izmantot abstraktu klasi un saskarni C #
  • Kā strādāt ar AutoMapper C #
  • Kā lietot lambda izteicienus C #
  • Kā strādāt ar Action, Func un Predicate delegātiem C #
  • Kā strādāt ar delegātiem C #
  • Kā ieviest vienkāršu reģistrētāju C #
  • Kā strādāt ar atribūtiem C #
  • Kā strādāt ar log4net C #
  • Kā ieviest krātuves dizaina modeli C #
  • Kā strādāt ar refleksiju C #
  • Kā strādāt ar filesystemwatcher C #
  • Kā veikt slinku inicializāciju C #
  • Kā strādāt ar MSMQ C #
  • Kā strādāt ar paplašināšanas metodēm C #
  • Kā mums izteikt lambda izteicienus C #
  • Kad lietot svārstīgo atslēgvārdu C #
  • Kā izmantot ienesīguma atslēgvārdu C #
  • Kā ieviest polimorfismu C #
  • Kā izveidot savu uzdevumu plānotāju C #
  • Kā strādāt ar RabbitMQ C #
  • Kā strādāt ar dubultošanos C #
  • Virtuālu un abstraktu metožu izpēte C #
  • Kā lietot Dapper ORM C #
  • Kā izmantot lidojošā dizaina rakstu C #
$config[zx-auto] not found$config[zx-overlay] not found