Console.app: τι είναι, λειτουργίες και πώς να διαβάζετε αρχεία καταγραφής σε macOS

Συγγραφέας: IT Sectr Δημοσιεύτηκε: 2026-05-29 Χρόνος ανάγνωσης: 8 λεπ

Το Console.app είναι μια ενσωματωμένη εφαρμογή macOS για προβολή, φιλτράρισμα και ανάλυση αρχείων καταγραφής συστήματος και χρήστη. Εμφανίζει μηνύματα από το unified logging σύστημα της Apple (os_log) σε πραγματικό χρόνο, επιτρέποντας στον προγραμματιστή να βλέπει crashes, σφάλματα και μηνύματα εντοπισμού σφαλμάτων χωρίς σύνδεση στο Xcode. Σύμφωνα με το Apple Support, το Console.app υποστηρίζει φιλτράρισμα κατά subsystem, category, επίπεδο σοβαρότητας και διεργασία, καθώς και εξαγωγή αρχείων καταγραφής σε .logarchive για μεταφορά στον προγραμματιστή. Είναι ένα απαραίτητο εργαλείο για τη διάγνωση προβλημάτων σε Mac: τα φίλτρα και οι αποθηκευμένες αναζητήσεις επιτρέπουν τη γρήγορη εύρεση σφαλμάτων στην εφαρμογή ανάμεσα σε χιλιάδες μηνύματα συστήματος.

Κύρια σημεία

  • Console.app — ενσωματωμένος προβολέας αρχείων καταγραφής macOS που λειτουργεί με το unified logging σύστημα της Apple
  • Φιλτράρισμα — αναζήτηση κατά subsystem, category, επίπεδο (Error, Fault, Debug) και κείμενο μηνύματος με υποστήριξη κανονικών εκφράσεων
  • Λειτουργίες — Live (ροή πραγματικού χρόνου) και Historical (αρχειοθετημένα αρχεία καταγραφής), εναλλαγή μέσω της γραμμής εργαλείων
  • Εξαγωγή — αποθήκευση αρχείων καταγραφής σε .logarchive, .txt και .json για μεταφορά στον προγραμματιστή ή επισύναψη σε αναφορά σφάλματος
  • Αποθηκευμένες αναζητήσεις — ονομασμένα φίλτρα για τυπικά σενάρια: όλα τα σφάλματα εφαρμογής, αρχεία καταγραφής δικτύου, CrashReporter

Τι είναι το Console.app

Το Console.app είναι μια γραφική διεπαφή για το unified logging σύστημα της Apple. Αντικατέστησε την παλιά εφαρμογή Console (ως μέρος του macOS) και παρέχει πρόσβαση σε όλα τα αρχεία καταγραφής συστήματος και εφαρμογών που καταγράφονται μέσω των API os_log, os_trace και syslog. Το Console.app είναι διαθέσιμο στο /Applications/Utilities/ σε κάθε Mac.

Σε αντίθεση με το Xcode, το οποίο εμφανίζει μόνο αρχεία καταγραφής για την εφαρμογή που εκτελείται από το IDE, το Console.app εμφανίζει τα αρχεία καταγραφής όλων των διεργασιών στο σύστημα ταυτόχρονα. Αυτό επιτρέπει τη διάγνωση προβλημάτων που προκύπτουν μόνο κατά την εκτέλεση της εφαρμογής εκτός Xcode ή στο παρασκήνιο. Το Console.app εμφανίζει επίσης αρχεία καταγραφής συστήματος — kernel, launchd, WindowServer, που είναι χρήσιμο για εντοπισμό σφαλμάτων χαμηλού επιπέδου.

Το Console.app δεν απαιτεί εγκατάσταση πρόσθετων εργαλείων ή σύνδεση στο διαδίκτυο. Όλα τα δεδομένα αποθηκεύονται τοπικά στη βάση δεδομένων .tracev3 και η εφαρμογή λειτουργεί εντελώς εκτός σύνδεσης. Για προβολή αρχείων καταγραφής από άλλο Mac ή συσκευή iOS χρησιμοποιείται η εντολή log collect ακολουθούμενη από το άνοιγμα του .logarchive στο Console.app.

Η διεπαφή του Console.app

Η διεπαφή του Console.app αποτελείται από τρεις κύριες περιοχές: το πλευρικό πλαίσιο με φίλτρα, τον πίνακα μηνυμάτων και το πλαίσιο λεπτομερειών του επιλεγμένου μηνύματος. Το πλευρικό πλαίσιο περιέχει τις ενότητες Devices (διαθέσιμες πηγές αρχείων καταγραφής), Reports (αναφορές συστήματος για σφάλματα) και Saved Searches (αποθηκευμένα ερωτήματα αναζήτησης).

Ο πίνακας μηνυμάτων εμφανίζει μια λίστα αρχείων καταγραφής με στήλες: Time (χρονική σφραγίδα), Category (κατηγορία), Level (επίπεδο σοβαρότητας — ένδειξη χρώματος), Process (όνομα διεργασίας), Message (κείμενο μηνύματος). Κάνοντας κλικ σε οποιοδήποτε μήνυμα ανοίγει το πλαίσιο λεπτομερειών, όπου εμφανίζονται subsystem, activity identifier, thread ID και το πλήρες κείμενο με μορφοποίηση.

Το Console.app τονίζει τα μηνύματα με χρώμα: κόκκινο για Fault, κίτρινο για Error, μπλε για Debug, γκρι για Info. Τα προεπιλεγμένα μηνύματα δεν τονίζονται. Αυτό επιτρέπει την οπτική σάρωση της ροής αρχείων καταγραφής και την άμεση παρατήρηση κρίσιμων συμβάντων.

swift
// Αρχεία καταγραφής που θα εμφανιστούν στο Console.app
import OSLog

let logger = Logger(
    subsystem: "com.example.myapp",
    category: "network"
)

logger.error("Connection failed: timeout")
logger.debug("Retry attempt 3 of 5")

// Αυτά τα μηνύματα είναι ορατά στο Console.app με το φίλτρο “myapp”

Φίλτρα και αναζήτηση στο Console.app

Φιλτράρισμα — η κύρια λειτουργία του Console.app, που μετατρέπει μια ροή χιλιάδων μηνυμάτων ανά δευτερόλεπτο σε μια αναγνώσιμη λίστα. Το πεδίο αναζήτησης στο επάνω μέρος υποστηρίζει συνθήκες AND: πολλές λέξεις διαχωρισμένες με κενό εμφανίζουν μόνο μηνύματα που περιέχουν όλες τις λέξεις. Για παράδειγμα, myapp error θα εμφανίσει όλα τα αρχεία καταγραφής της εφαρμογής myapp με επίπεδο Error.

Φίλτρο Subsystem στο πλευρικό πλαίσιο επιτρέπει την επιλογή ενός ή περισσότερων subsystem. Αυτός είναι ο ταχύτερος τρόπος απομόνωσης των αρχείων καταγραφής μιας συγκεκριμένης εφαρμογής από μηνύματα συστήματος. Φίλτρο Category είναι διαθέσιμο μετά την επιλογή subsystem — εμφανίζει όλες τις κατηγορίες που χρησιμοποιεί η επιλεγμένη εφαρμογή. Φίλτρο Level περιορίζει τα μηνύματα κατά επίπεδο σοβαρότητας: μπορούν να εμφανιστούν μόνο σφάλματα ή μόνο μηνύματα εντοπισμού σφαλμάτων.

Τύπος φίλτρουΠαράδειγμαΑποτέλεσμα
Κείμενοcrash paymentΜηνύματα που περιέχουν crash ΚΑΙ payment
Subsystemcom.example.myappΜόνο αρχεία καταγραφής της καθορισμένης εφαρμογής
LevelError + FaultΜόνο σφάλματα και κρίσιμες βλάβες
CategorynetworkΜηνύματα με κατηγορία network
ΧρόνοςΤελευταία 1 ώραΜηνύματα μόνο από το επιλεγμένο διάστημα

Κανονικές εκφράσεις στην αναζήτηση

Το πεδίο αναζήτησης του Console.app υποστηρίζει regex μέσω της κατασκευής REGEX:pattern. Παράδειγμα: REGEX:error.*tim(e|out) θα βρει όλα τα μηνύματα που περιέχουν “error” και μια λέξη που ξεκινά με “tim” και τελειώνει σε “e” ή “out”. Το regex λειτουργεί μόνο στο πεδίο αναζήτησης, όχι στα φίλτρα subsystem ή category.

Λειτουργίες Live και Historical

Live — λειτουργία πραγματικού χρόνου, στην οποία το Console.app εμφανίζει νέα μηνύματα καθώς εμφανίζονται στον κυκλικό buffer του πυρήνα. Αυτή η λειτουργία είναι ενεργή από προεπιλογή και είναι κατάλληλη για εντοπισμό σφαλμάτων μιας εκτελούμενης εφαρμογής: εκκινείτε την εφαρμογή και βλέπετε τα αρχεία καταγραφής της με καθυστέρηση 1–5 δευτερολέπτων. Το κουμπί Live (ή ⌘L) ενεργοποιεί και απενεργοποιεί τη ροή.

Historical — λειτουργία προβολής αρχείου. Το Console.app αποθηκεύει όλα τα μηνύματα των τελευταίων 7–14 ημερών (ρυθμίζεται στο σύστημα) στη βάση δεδομένων .tracev3. Η λειτουργία Historical ανοίγει αυτό το αρχείο και επιτρέπει αναζήτηση με οποιοδήποτε φίλτρο, όχι μόνο στην τρέχουσα ροή. Είναι απαραίτητο για ανάλυση προβλημάτων που συνέβησαν τη νύχτα ή όταν η εφαρμογή λειτουργούσε χωρίς σύνδεση στο Mac.

Η εναλλαγή μεταξύ λειτουργιών γίνεται μέσω του κουμπιού Live στη γραμμή εργαλείων. Όταν το Live είναι απενεργοποιημένο, το Console.app εμφανίζει ιστορικά δεδομένα. Σε αυτή τη λειτουργία, μπορείτε να πλοηγηθείτε στη γραμμή χρόνου χρησιμοποιώντας το ημερολόγιο ή τα κουμπιά ← →. Τα ιστορικά δεδομένα είναι διαθέσιμα μόνο για αρχεία καταγραφής που έχουν αποθηκευτεί στο δίσκο — μηνύματα που έχουν αντικατασταθεί στον κυκλικό buffer δεν εισέρχονται στο αρχείο.

Εξαγωγή και κοινή χρήση αρχείων καταγραφής

Το Console.app υποστηρίζει εξαγωγή φιλτραρισμένων αρχείων καταγραφής σε διάφορες μορφές. File → Export → Save επιλέγει τη μορφή: .logarchive (εγγενής μορφή Apple, περιλαμβάνει όλα τα μεταδεδομένα), .txt (απλό κείμενο με στήλες) και .json (δομημένα δεδομένα με πεδία). Για επισύναψη σε αναφορά σφάλματος χρησιμοποιήστε .logarchive — μπορεί να ανοίξει σε οποιοδήποτε Mac στο Console.app.

Εξαγωγή από συσκευή iOS: μέσω Xcode (Devices → Open Console) ή μέσω της εντολής log collect --device --output ./archive.logarchive στο τερματικό. Το ληφθέν .logarchive ανοίξτε στο Console.app στο Mac — τα αρχεία καταγραφής προέρχονται από την απομακρυσμένη συσκευή, αλλά τα φίλτρα και η αναζήτηση λειτουργούν όπως με τα τοπικά αρχεία καταγραφής.

swift
// Εξαγωγή αρχείων καταγραφής συσκευής iOS μέσω τερματικού
// log collect --device --output ./ios_crash.logarchive
// log show --subsystem com.example.app --last 1h --output json

// Παράδειγμα: εξαγωγή αρχείων καταγραφής της τελευταίας ώρας
// log show --predicate 'subsystem == "com.example.myapp"' \
//   --info --debug --last 1h --output json > logs.json

// Ανάλυση εξαγόμενων αρχείων καταγραφής σε Swift
let jsonData = try Data(contentsOf: URL(fileURLWithPath: "logs.json"))
let decoded = try JSONDecoder()
    .decode([LogEntry].self, from: jsonData)

Κοινή χρήση αρχείων καταγραφής

.logarchive — η βέλτιστη μορφή για αποστολή σε συνάδελφο ή επισύναψη σε δελτίο JIRA. Το αρχείο περιέχει όχι μόνο μηνύματα, αλλά και subsystem, category, timestamps, thread IDs και όλα τα μεταδεδομένα. Το μέγεθος του αρχείου είναι σημαντικά μικρότερο από τα ακατέργαστα αρχεία καταγραφής χάρη στη συμπίεση .tracev3. Πριν από την αποστολή βεβαιωθείτε ότι τα αρχεία καταγραφής δεν περιέχουν ιδιωτικά δεδομένα: χρησιμοποιήστε το φίλτρο subsystem της εφαρμογής σας για να εξαιρέσετε αρχεία καταγραφής συστήματος που μπορεί να περιέχουν εμπιστευτικές πληροφορίες άλλων διεργασιών.

Πρακτικά παραδείγματα εντοπισμού σφαλμάτων μέσω Console.app

Διάγνωση crash χωρίς Xcode: εάν η εφαρμογή κατέρρευσε κατά την εκκίνηση εκτός Xcode, το Console.app θα εμφανίσει ένα μήνυμα Fault από τη διεργασία. Βρείτε στο πλευρικό πλαίσιο Reports → Crash Reports — εκεί εμφανίζονται πλήρεις αναφορές κατάρρευσης με υπογραφή και στοίβα. Χρησιμοποιήστε το φίλτρο subsystem για την εφαρμογή σας και ορίστε το επίπεδο Error+Fault για να δείτε όλα τα κρίσιμα συμβάντα πριν από την κατάρρευση.

Ανάλυση απόδοσης μέσω Console.app

Το Console.app επιτρέπει την παρακολούθηση καθυστερήσεων στην εφαρμογή βάσει χρονικών σφραγίδων. Εάν μεταξύ δύο σχετικών μηνυμάτων (για παράδειγμα, “Το αίτημα στάλθηκε” και “Η απάντηση ελήφθη”) έχει περάσει περισσότερος χρόνος από τον αναμενόμενο — αυτό είναι σήμα προβλήματος απόδοσης. Το φίλτρο κατά subsystem της εφαρμογής σας με επίπεδο Default θα εμφανίσει όλα τα βασικά συμβάντα με ακρίβεια χιλιοστού του δευτερολέπτου.

Αναζήτηση διαρροής μνήμης: σε περίπτωση διαρροής μνήμης, το σύστημα στέλνει προειδοποίηση μνήμης μέσω os_log με κατηγορία memory και επίπεδο Error. Στο Console.app φιλτράρετε κατά τη λέξη memory και επιλέξτε το subsystem σας. Εάν η προειδοποίηση επαναλαμβάνεται κάθε 5–10 δευτερόλεπτα — η εφαρμογή καταναλώνει ενεργά μνήμη. Επιπλέον, μπορείτε να ενεργοποιήσετε αρχεία καταγραφής Debug για παρακολούθηση κατανομών.

Εντοπισμός σφαλμάτων αιτημάτων δικτύου: εάν η εφαρμογή σας χρησιμοποιεί os_log για συμβάντα δικτύου, το Console.app θα εμφανίσει όλα τα αιτήματα και τις αποκρίσεις με χρονομέτρηση. Το φίλτρο category=network μειώνει το θόρυβο. Εάν ο χρόνος μεταξύ αιτήματος και απόκρισης υπερβαίνει τον αναμενόμενο, αναζητήστε μηνύματα με level=Error — αυτά θα υποδείξουν χρονικές υπερβάσεις ή σφάλματα DNS.

swift
// Δομή για ανάλυση αρχείων καταγραφής JSON του Console.app
struct LogEntry: Codable {
    let timestamp: String
    let eventMessage: String
    let subsystem: String
    let category: String
    let messageType: UInt8

    var level: String {
        switch messageType {
        case 1: return "Fault"
        case 16: return "Error"
        case 17: return "Debug"
        default: return "Default"
        }
    }
}

Συχνές Ερωτήσεις

Πού βρίσκεται το Console.app σε Mac;

Το Console.app βρίσκεται στο φάκελο /Applications/Utilities/. Μπορεί να ανοίξει μέσω του Spotlight (⌘Space → Console) ή μέσω του Finder → Προγράμματα → Βοηθήματα → Κονσόλα. Το εικονίδιο της εφαρμογής είναι μια στυλιζαρισμένη φούσκα ομιλίας με γρανάζι.

Γιατί το Console.app εμφανίζει <private> αντί για τιμές;

Το os_log αποκρύπτει συμβολοσειρές και αντικείμενα ως private από προεπιλογή. Το Console.app τα εμφανίζει ως <private> σε λειτουργία παραγωγής. Για να δείτε τις πραγματικές τιμές, εκκινήστε την εφαρμογή από το Xcode ή ενεργοποιήστε ένα προφίλ συλλογής με επίπεδο Debug για το subsystem σας.

Πώς να φιλτράρω μόνο τα αρχεία καταγραφής της εφαρμογής μου;

Στο πλευρικό πλαίσιο του Console.app, επιλέξτε το subsystem σας (com.example.app) στην ενότητα Devices → η συσκευή σας → Processes. Εναλλακτικά — εισάγετε το όνομα της διεργασίας στο πεδίο αναζήτησης και επιλέξτε Process: YourApp από την αναπτυσσόμενη λίστα.

Πόσο καιρό αποθηκεύει το Console.app αρχεία καταγραφής;

Από προεπιλογή, το macOS αποθηκεύει αρχεία καταγραφής στο .tracev3 για 7–14 ημέρες ανάλογα με τον διαθέσιμο χώρο στο δίσκο. Σε περίπτωση έλλειψης χώρου, τα παλαιότερα αρχεία καταγραφής διαγράφονται αυτόματα. Η περίοδος αποθήκευσης μπορεί να αυξηθεί μέσω sudo log config, αλλά αυτό δεν συνιστάται για μηχανήματα παραγωγής.

Μπορώ να δω αρχεία καταγραφής συσκευής iOS στο Console.app;

Ναι, συνδέστε τη συσκευή iOS στο Mac μέσω USB, ανοίξτε το Xcode → Devices → επιλέξτε τη συσκευή → Open Console. Το Console.app θα εμφανίσει τα αρχεία καταγραφής της συνδεδεμένης συσκευής σε πραγματικό χρόνο. Για αυτόνομη συλλογή χρησιμοποιήστε την log collect στο τερματικό με τη σημαία --device.

Σύνοψη

  • Console.app — ενσωματωμένο εργαλείο macOS για προβολή αρχείων καταγραφής unified logging (os_log), χωρίς απαίτηση Xcode ή πρόσθετων εγκαταστάσεων
  • Φίλτρα — αναζήτηση κατά subsystem, category, επίπεδο σοβαρότητας, κείμενο και regex με συνθήκες AND για απομόνωση καταγραφής συγκεκριμένης εφαρμογής
  • Λειτουργίες — Live (ροή πραγματικού χρόνου με καθυστέρηση 1–5 δευτερολέπτων) και Historical (αρχείο 7–14 ημερών) για ανάλυση προβλημάτων που έχουν ήδη συμβεί
  • Εξαγωγή — .logarchive με πλήρη μεταδεδομένα για μεταφορά σε συναδέλφους, .json για προγραμματιστική ανάλυση, .txt για γρήγορη προβολή
  • Διάγνωση — εύρεση crashes, διαρροών μνήμης και σφαλμάτων δικτύου χωρίς Xcode μέσω φιλτραρίσματος σφαλμάτων και κρίσιμων βλαβών με χρωματική ένδειξη Fault
  • Απομακρυσμένες συσκευές — προβολή αρχείων καταγραφής συσκευής iOS μέσω Xcode ή εξαγωγή μέσω log collect με επακόλουθο άνοιγμα .logarchive στο Console.app σε Mac
  • Ιδιωτικότητα — το os_log αποκρύπτει <private> δεδομένα στο Console.app σε λειτουργία παραγωγής; για εντοπισμό σφαλμάτων χρησιμοποιήστε Xcode ή προφίλ συλλογής επιπέδου Debug

Θα αναπτύξουμε μια εφαρμογή για κινητά έτοιμη για χρήση

Η IT Sectr δημιουργεί εφαρμογές iOS και Android για νεοφυείς επιχειρήσεις και επιχειρήσεις από το 2017. Θα σας συμβουλεύσουμε και θα προτείνουμε την καλύτερη λύση.

Συζήτηση έργου

Διαβάστε επίσης