Πώς να γράψετε αρχεία καταγραφής

Πίνακας περιεχομένων:

Πώς να γράψετε αρχεία καταγραφής
Πώς να γράψετε αρχεία καταγραφής

Βίντεο: Πώς να γράψετε αρχεία καταγραφής

Βίντεο: Πώς να γράψετε αρχεία καταγραφής
Βίντεο: Πως να επαναφέρετε παλιά αρχεία 2024, Νοέμβριος
Anonim

Σήμερα, οι περισσότερες εφαρμογές εφαρμογών και συστήματος αποθηκεύουν περιοδικά πληροφορίες σχετικά με τη διαδικασία της εργασίας τους, τα σφάλματα και τις αστοχίες τους σε ειδικά αρχεία καταγραφής που ονομάζονται αρχεία καταγραφής. Τα περισσότερα λειτουργικά συστήματα γενικής χρήσης παρέχουν υπηρεσίες που σας επιτρέπουν να γράφετε αρχεία καταγραφής χρησιμοποιώντας μια τυπική διεπαφή προγραμματισμού.

Πώς να γράψετε αρχεία καταγραφής
Πώς να γράψετε αρχεία καταγραφής

Απαραίτητη

  • - C μεταγλωττιστής.
  • - Windows Platform SDK.
  • - Αναπτύξτε πακέτο για glibc.

Οδηγίες

Βήμα 1

Προσθέστε υποστήριξη για τη σύνταξη αρχείων καταγραφής στο αρχείο καταγραφής συστήματος από την εφαρμογή σας που έχει σχεδιαστεί για να λειτουργεί σε λειτουργικά συστήματα της οικογένειας Windows.

Χρησιμοποιήστε τη συνάρτηση RegisterEventSource API για να καταχωρίσετε την εφαρμογή ως πηγή συμβάντος, τη συνάρτηση ReportEvent για να προσθέσετε μια καταχώριση στο αρχείο καταγραφής και τη συνάρτηση DeregisterEventSource για να κλείσετε τη λαβή που επιστρέφεται από το RegisterEventSource.

Είναι λογικό να καλέσετε το RegisterEventSource κατά την αρχικοποίηση της εφαρμογής και να αποθηκεύσετε τον επιστρεφόμενο περιγραφέα όλη την ώρα, έτσι ώστε οι καταχωρίσεις στο αρχείο καταγραφής να μπορούν να τοποθετηθούν από διαφορετικά μέρη του προγράμματος. Το απλούστερο παράδειγμα γραφής στο αρχείο καταγραφής των Windows μπορεί να μοιάζει με αυτό:

HANDLE hLog = RegisterEventSource (NULL, "MyApplicationName");

αν (hLog! = NULL)

{

εάν (ReportEvent (hLog, EVENTLOG_INFORMATION_TYPE, 0, 0, NULL, 1, 0, "Κείμενο μηνύματος / 0", NULL))

{

// το συμβάν καταγράφηκε με επιτυχία

}

DeregisterEventSource (hLog);

}

Περισσότερες λεπτομέρειες σχετικά με τη σημασιολογία της συνάρτησης ReportEvent μπορείτε να βρείτε στο MSDN στη διεύθυνση https://msdn.microsoft.com/en-us/library/windows/desktop/aa363679%28v=vs.85%29.aspx. Επιπλέον, πρέπει να βάλετε ορισμένα δεδομένα σχετικά με την εκτελέσιμη λειτουργική μονάδα της εφαρμογής στο μητρώο συστήματος και να προσθέσετε πόρους σε συγκεκριμένη μορφή στην ίδια τη λειτουργική μονάδα ή σε μια δυναμική βιβλιοθήκη τρίτου μέρους. Για περισσότερες πληροφορίες σχετικά με τα κλειδιά μητρώου για την υπηρεσία καταγραφής συμβάντων, ανατρέξτε στη διεύθυνση

Βήμα 2

Η σύνδεση σε λειτουργικά συστήματα συμβατά με Linux μπορεί συνήθως να γίνει χρησιμοποιώντας το δαίμονα syslog. Αυτή η υπηρεσία διαθέτει διεπαφή σε επίπεδο εφαρμογής με τη μορφή ενός συνόλου λειτουργιών, οι δηλώσεις των οποίων τοποθετούνται στο αρχείο κεφαλίδας syslog.h.

Χρησιμοποιήστε τη λειτουργία openlog για να δημιουργήσετε μια σύνδεση με την υπηρεσία syslog από μια εφαρμογή ή μια βιβλιοθήκη. Καλέστε τις λειτουργίες syslog ή vsyslog για να βάλετε μηνύματα στο αρχείο καταγραφής. Μετά το τέλος της εγγραφής συμβάντων ή όταν τερματιστεί η εφαρμογή, κλείστε τη σύνδεση με την υπηρεσία καλώντας τη λειτουργία closelog. Επιπλέον, μπορείτε να διαμορφώσετε τις ρυθμίσεις για να αγνοήσετε τις κλήσεις που προσθέτουν εγγραφές συμβάντων με συγκεκριμένη προτεραιότητα χρησιμοποιώντας τη λειτουργία setlogmask. Ένα παράδειγμα γραφής μηνυμάτων στο αρχείο καταγραφής μπορεί να μοιάζει με αυτό:

openlog ("MyApplication", LOG_CONS | LOG_PID | LOG_NDELAY, LOG_LOCAL1);

syslog (LOG_NOTICE, "Το MyApplication ξεκινά με PID% d", getuid ());

syslog (LOG_INFO, "Μήνυμα πληροφοριών!");

closelog ();

Για περισσότερες πληροφορίες σχετικά με τις παραμέτρους των λειτουργιών API syslog, ανατρέξτε στην τεκμηρίωση πληροφοριών libc.

Βήμα 3

Γράψτε αρχεία καταγραφής σε αυθαίρετα αρχεία χρησιμοποιώντας τη δική σας εφαρμογή του υποσυστήματος επιμονής συμβάντων. Μία από τις απλούστερες λύσεις σε αυτό το πρόβλημα είναι η δημιουργία πολλών λειτουργιών στο παγκόσμιο πεδίο, μία εκ των οποίων ανοίγει ένα αρχείο με ένα συγκεκριμένο όνομα στη λειτουργία προσθήκης πληροφοριών, το δεύτερο το κλείνει και το τρίτο προσθέτει μια συμβολοσειρά μηνυμάτων που μεταβιβάζεται σε αυτήν ως μια παράμετρος σε αυτό το αρχείο. Εννοιολογικά, αυτή η λύση μοιάζει με τη διεπαφή προγραμματισμού syslog στο Linux.

Χρησιμοποιήστε τις λειτουργίες fopen και fclose της τυπικής βιβλιοθήκης C για να ανοίξετε και να κλείσετε ένα αρχείο, αντίστοιχα. Καλέστε το fwrite για να προσθέσετε πληροφορίες στο αρχείο. Μπορείτε επίσης να χρησιμοποιήσετε συγκεκριμένες πλατφόρμες συναρτήσεις (για παράδειγμα, CreateFile στα Windows) και μεθόδους αντικειμένων των πλαισίων που χρησιμοποιούνται που ενσωματώνουν τη λειτουργικότητα της εργασίας με αρχεία.

Συνιστάται: