Το λειτουργικό σύστημα Windows καταγράφει δεδομένα στο αρχείο καταγραφής συμβάντων των Windows κάθε φορά που παρουσιάζεται πρόβλημα. Μπορείτε να δείτε αυτά τα δεδομένα χρησιμοποιώντας το εργαλείο Windows Event Viewer. Αυτό το άρθρο περιγράφει τον τρόπο με τον οποίο μπορείτε να εργαστείτε μέσω προγραμματισμού με το Windows Event Log C #.
Για να εργαστείτε με τα παραδείγματα κώδικα που παρέχονται σε αυτό το άρθρο, θα πρέπει να έχετε εγκαταστήσει το Visual Studio 2019 στο σύστημά σας. Εάν δεν έχετε ήδη αντίγραφο, μπορείτε να κατεβάσετε το Visual Studio 2019 εδώ.
Δημιουργήστε ένα έργο εφαρμογής .NET Core κονσόλας στο Visual Studio
Πρώτα απ 'όλα, ας δημιουργήσουμε ένα έργο εφαρμογής .NET Core κονσόλας στο Visual Studio. Υποθέτοντας ότι το Visual Studio 2019 είναι εγκατεστημένο στο σύστημά σας, ακολουθήστε τα βήματα που περιγράφονται παρακάτω για να δημιουργήσετε ένα νέο έργο εφαρμογής .NET Core κονσόλας στο Visual Studio.
- Εκκινήστε το Visual Studio IDE.
- Κάντε κλικ στο "Δημιουργία νέου έργου".
- Στο παράθυρο "Δημιουργία νέου έργου", επιλέξτε "Εφαρμογή κονσόλας (.NET Core)" από τη λίστα των προτύπων που εμφανίζονται.
- Κάντε κλικ στο Επόμενο.
- Στο παράθυρο "Διαμόρφωση του νέου έργου" που εμφανίζεται στη συνέχεια, καθορίστε το όνομα και την τοποθεσία για το νέο έργο.
- Κάντε κλικ στο Δημιουργία.
Αυτό θα δημιουργήσει ένα νέο έργο εφαρμογής .NET Core κονσόλας στο Visual Studio 2019. Θα χρησιμοποιήσουμε αυτό το έργο για να συνεργαστούμε με το αρχείο καταγραφής συμβάντων των Windows στις επόμενες ενότητες αυτού του άρθρου.
Εγκαταστήστε το πακέτο EventLog NuGet
Για να μπορέσετε να εργαστείτε με τις εφαρμογές Σύνδεση συμβάντων των Windows .NET Core, θα πρέπει να εγκαταστήσετε το πακέτο Microsoft.Extensions.Logging.EventLog από το NuGet. Μπορείτε να το κάνετε είτε μέσω του NuGet Package Manager στο Visual Studio 2019 IDE είτε εκτελώντας την ακόλουθη εντολή στο NuGet Package Manager Console:
Install-Package Microsoft.Extensions.Logging.EventLog
Δημιουργήστε μια παρουσία της κλάσης EventLog στο C #
Για να δημιουργήσετε μια παρουσία της κλάσης EventLog και να γράψετε μια καταχώρηση στο Windows Event Log, μπορείτε να χρησιμοποιήσετε τον ακόλουθο κώδικα:
EventLog eventLog = νέο EventLog ();eventLog.Source = "MyEventLogTarget";
eventLog.WriteEntry ("Αυτό είναι ένα δοκιμαστικό μήνυμα.", EventLogEntryType.Information);
Γράψτε σε μια παρουσία EventLog στο C #
Εάν θέλετε να καταγράψετε δεδομένα σε αυτήν την παρουσία EventLog από την εφαρμογή σας, μπορείτε να χρησιμοποιήσετε τον ακόλουθο κώδικα:
string message = "Αυτό είναι ένα δοκιμαστικό μήνυμα.";χρήση (EventLog eventLog = new EventLog ("Application"))
{
eventLog.Source = "Εφαρμογή";
eventLog.WriteEntry (μήνυμα, EventLogEntryType.Information);
}
Διαγραφή παρουσίας EventLog στο C #
Για να διαγράψετε την παρουσία EventLog, μπορείτε να χρησιμοποιήσετε τον ακόλουθο κώδικα:
EventLog eventLog = νέο EventLog ();eventLog.Source = "MyEventLogSource";
eventLog.Clear ();
Το ακόλουθο απόσπασμα κώδικα μπορεί να χρησιμοποιηθεί για τη διαγραφή ενός αρχείου καταγραφής συμβάντων.
εάν (EventLog.Exists ("MyEventLogTarget")){
EventLog.Delete ("MyEventLogTarget");
}
Διαβάστε τις καταχωρήσεις EventLog στο C #
Μπορείτε να διαβάσετε όλες τις καταχωρήσεις καταγραφής χρησιμοποιώντας το απόσπασμα κώδικα που δίνεται παρακάτω:
EventLog eventLog = νέο EventLog ();eventLog.Log = "MyEventLogTarget";
foreach (καταχώριση EventLogEntry στο eventLog.Entries)
{
// Γράψτε τον προσαρμοσμένο κωδικό σας εδώ
}
Χρησιμοποιήστε το NLog για να γράψετε δεδομένα καταγραφής στο EventLog στο C #
Τώρα θα εκμεταλλευτούμε το πακέτο NLog.WindowsEventLog. Αυτό το πακέτο θα μας επιτρέψει να χρησιμοποιήσουμε το NLog για αποστολή δεδομένων καταγραφής στο EventLog ενώ εργαζόμαστε από το περιβάλλον .NET Core
Το NLog.WindowsEventLog ενσωματώνει τις περιπλοκές της σύνδεσης στο EventLog και της συνεργασίας με το EventLog από το ASP.NET Core. Απλώς πρέπει να καλέσετε μεθόδους NLog όπως συνήθως.
Εφόσον θα χρησιμοποιούμε το NLog για την καταγραφή δεδομένων στο EventLog, προσθέστε το ακόλουθο πακέτο στο έργο σας:
Εγκατάσταση-πακέτο NLog.WindowsEventLog
Δημιουργήστε μια διεπαφή καταγραφής στο C #
Δημιουργήστε την ακόλουθη διεπαφή για να αποθηκεύσετε τα αρχεία καταγραφής ως πληροφορίες, προειδοποίηση, εντοπισμό σφαλμάτων ή σφάλμα.
δημόσια διεπαφή ILogManager{
άκυρη LogInformation (μήνυμα συμβολοσειράς).
άκυρο LogWarning (μήνυμα συμβολοσειράς).
void LogDebug (μήνυμα συμβολοσειράς).
void LogError (μήνυμα συμβολοσειράς).
}
Εφαρμόστε μια τάξη NLogManager στο C #
Στη συνέχεια, δημιουργήστε μια κλάση με το όνομα NLogManager που επεκτείνει τη διεπαφή ILogManager και εφαρμόζει καθεμία από τις μεθόδους της.
δημόσια τάξη NLogManager: ILogManager{
ιδιωτικό στατικό καταγραφικό NLog.ILogger =
LogManager.GetCurrentClassLogger ();
public void LogDebug (μήνυμα συμβολοσειράς)
{
ρίξτε νέο NotImplementedException ();
}
public void LogError (μήνυμα συμβολοσειράς)
{
logger.Error (μήνυμα);
}
public void LogInformation (μήνυμα συμβολοσειράς)
{
ρίξτε νέο NotImplementedException ();
}
public void LogWarning (μήνυμα συμβολοσειράς)
{
ρίξτε νέο NotImplementedException ();
}
}
Εφαρμόστε μια μέθοδο LogError στο C #
Λάβετε υπόψη ότι για λόγους απλότητας θα χρησιμοποιήσουμε τη μέθοδο LogError σε αυτό το παράδειγμα και ότι οι άλλες μέθοδοι της κλάσης NLogManager δεν θα εφαρμοστούν. Ας καταλάβουμε τώρα πώς μπορούμε να χρησιμοποιήσουμε το NLog για να καταγράψουμε δεδομένα στο EventLog. Τροποποιήστε τη μέθοδο LogError της κλάσης NLogManager όπως φαίνεται παρακάτω:
public void LogError (μήνυμα συμβολοσειράς){
Logger logger = LogManager.GetLogger ("EventLogTarget");
var logEventInfo = νέο LogEventInfo (LogLevel.Error,
καταγραφέας. Όνομα, μήνυμα);
logger.Log (logEventInfo);
}
Σημειώστε ότι το EventLogTarget είναι απλώς το όνομα του στόχου καταγραφής για το EventLog, το οποίο πρέπει να οριστεί στο αρχείο διαμόρφωσης nlog.config. Η κλάση LogEventInfo είναι το συμβάν καταγραφής σας, δηλαδή αντιπροσωπεύει το συμβάν καταγραφής. Στον κατασκευαστή του πρέπει να περάσετε το επίπεδο καταγραφής, το όνομα του καταγραφέα και το μήνυμα που πρέπει να καταγραφεί.
Ρύθμιση παραμέτρων NLog για καταγραφή δεδομένων στο EventLog στο C #
Για να ρυθμίσετε το NLog μέσω προγραμματισμού για να καταγράψετε δεδομένα στο EventLog, μπορείτε να χρησιμοποιήσετε τον ακόλουθο κώδικα:
var config = νέο NLog.Config.LoggingConfiguration ();var logEventLog = νέο NLog.Targets.EventLogTarget ("EventLogTarget");
config.AddRule (NLog.LogLevel.Info, NLog.LogLevel.Error, logEventLog);
NLog.LogManager.Configuration = config;
Πλήρες παράδειγμα NLogManager στο C #
Ο πλήρης πηγαίος κώδικας της κλάσης NLogManager δίνεται παρακάτω για την αναφορά σας:
δημόσια τάξη NLogManager: ILogManager{
ιδιωτικό στατικό καταγραφικό NLog.ILogger =
LogManager.GetCurrentClassLogger ();
public void LogDebug (μήνυμα συμβολοσειράς)
{
logger.Debug (μήνυμα);
}
public void LogError (μήνυμα συμβολοσειράς)
{
Logger logger = LogManager.GetLogger ("EventLogTarget");
var logEventInfo = νέο LogEventInfo (LogLevel.Error,
καταγραφέας. Όνομα, μήνυμα);
logger.Log (logEventInfo);
}
public void LogInformation (μήνυμα συμβολοσειράς)
{
logger.Info (μήνυμα);
}
public void LogWarning (μήνυμα συμβολοσειράς)
{
logger.Warn (μήνυμα);
}
}
Για να αξιοποιήσετε την παρουσία NLogManager στους ελεγκτές θα πρέπει να προσθέσετε μια παρουσία της στη μέθοδο ConfigureServices όπως φαίνεται στο απόσπασμα κώδικα που δίνεται παρακάτω.
υπηρεσίες. AddSingleton ();
Κατά την εκκίνηση του Windows Event Viewer, μπορείτε να δείτε το μήνυμα σφάλματος που καταγράφεται εκεί όπως φαίνεται στο παρακάτω στιγμιότυπο οθόνης.
Το αρχείο καταγραφής συμβάντων των Windows χρησιμοποιείται συνήθως για την καταγραφή συμβάντων συστήματος, επισκεψιμότητας δικτύου και συναφών δεδομένων, όπως ασφάλεια, απόδοση κ.λπ. Μπορείτε να επωφεληθείτε από το αρχείο καταγραφής συμβάντων των Windows ως στόχος καταγραφής για να αποθηκεύσετε τα δεδομένα της εφαρμογής σας. Εάν η εφαρμογή σας εκτελείται μόνο σε Windows, το αρχείο καταγραφής συμβάντων των Windows είναι μια καλή επιλογή για την αποθήκευση των δεδομένων καταγραφής συμβάντων της εφαρμογής σας.
Πώς να κάνετε περισσότερα στο C #:
- Πώς να χρησιμοποιήσετε το ArrayPool και το MemoryPool στο C #
- Τρόπος χρήσης της κατηγορίας Buffer στο C #
- Πώς να χρησιμοποιήσετε το HashSet στο C #
- Τρόπος χρήσης των ονομαστικών και προαιρετικών παραμέτρων στο C #
- Τρόπος συγκριτικής αξιολόγησης κώδικα C # χρησιμοποιώντας BenchmarkDotNet
- Πώς να χρησιμοποιήσετε άπλετες διεπαφές και αλυσίδες μεθόδων στο C #
- Πώς να ενοποιήσετε τις στατικές μεθόδους δοκιμής στο C #
- Πώς να αναπαράγετε αντικείμενα του Θεού στο C #
- Πώς να χρησιμοποιήσετε το ValueTask σε C #
- Πώς να χρησιμοποιήσετε το αμετάβλητο στο C
- Πώς να χρησιμοποιήσετε const, μόνο για ανάγνωση και στατικό σε C #
- Πώς να χρησιμοποιήσετε σχολιασμούς δεδομένων στο C #
- Πώς να εργαστείτε με GUID στο C # 8
- Πότε να χρησιμοποιήσετε μια αφηρημένη τάξη εναντίον διεπαφής στο C #
- Πώς να εργαστείτε με το AutoMapper στο C #
- Πώς να χρησιμοποιήσετε τις εκφράσεις λάμδα στο C #
- Πώς να συνεργαστείτε με τους αντιπροσώπους Action, Func και Predicate στο C #
- Πώς να συνεργαστείτε με εκπροσώπους στο C #
- Πώς να εφαρμόσετε έναν απλό καταγραφέα στο C #
- Πώς να εργαστείτε με χαρακτηριστικά στο C #
- Πώς να εργαστείτε με το log4net στο C #
- Πώς να εφαρμόσετε το μοτίβο σχεδίασης αποθετηρίου στο C #
- Πώς να εργαστείτε με προβληματισμό στο C #
- Πώς να εργαστείτε με το σύστημα παρακολούθησης αρχείων στο C #
- Πώς να εκτελέσετε τεμπέλης αρχικοποίηση στο C #
- Πώς να εργαστείτε με το MSMQ στο C #
- Πώς να εργαστείτε με μεθόδους επέκτασης στο C #
- Πώς να μας εκφράσεις λάμδα στο C #
- Πότε να χρησιμοποιήσετε την ευμετάβλητη λέξη-κλειδί στο C #
- Πώς να χρησιμοποιήσετε τη λέξη-κλειδί απόδοσης στο C #
- Πώς να εφαρμόσετε τον πολυμορφισμό στο C #
- Πώς να δημιουργήσετε τον δικό σας προγραμματιστή εργασιών στο C #
- Πώς να εργαστείτε με το RabbitMQ στο C #
- Πώς να εργαστείτε με μια πλειάδα στο C #
- Εξερεύνηση εικονικών και αφηρημένων μεθόδων στο C #
- Πώς να χρησιμοποιήσετε το Dapper ORM στο C #
- Πώς να χρησιμοποιήσετε το μοτίβο σχεδιασμού flyweight στο C #