Console.app: ce este, funcții și cum să citești logurile în macOS

Autor: IT Sectr Publicat: 2026-05-29 Timp de citire: 8 min

Console.app este o aplicație încorporată macOS pentru vizualizarea, filtrarea și analiza logurilor de sistem și de utilizator. Afișează mesaje din sistemul unificat de logare Apple (os_log) în timp real, permițând dezvoltatorului să vadă crash-uri, erori și mesaje de depanare fără conectare la Xcode. Potrivit Apple Support, Console.app suportă filtrarea după subsystem, category, nivel de severitate și proces, precum și exportul logurilor în .logarchive pentru transmitere dezvoltatorului. Este un instrument indispensabil pentru diagnosticarea problemelor pe Mac: filtrele și căutările salvate permit găsirea rapidă a erorilor în aplicație dintre miile de mesaje de sistem.

Puncte principale

  • Console.app — vizualizatorul încorporat de loguri macOS, care lucrează cu sistemul unificat de logare Apple
  • Filtrare — căutare după subsystem, category, nivel (Error, Fault, Debug) și textul mesajului cu suport pentru expresii regulate
  • Moduri — Live (flux în timp real) și Historical (loguri arhivate), comutare prin bara de instrumente
  • Export — salvarea logurilor în .logarchive, .txt și .json pentru transmiterea dezvoltatorului sau atașarea la un raport de bug
  • Căutări salvate — filtre denumite pentru scenarii tipice: toate erorile aplicației, loguri de rețea, CrashReporter

Ce este Console.app

Console.app este o interfață grafică pentru sistemul unificat de logare Apple. A înlocuit vechea aplicație Console (ca parte a macOS) și oferă acces la toate logurile de sistem și ale aplicațiilor înregistrate prin API-urile os_log, os_trace și syslog. Console.app este disponibilă în /Applications/Utilities/ pe orice Mac.

Spre deosebire de Xcode, care arată doar logurile aplicației lansate din IDE, Console.app afișează logurile tuturor proceselor din sistem simultan. Acest lucru permite diagnosticarea problemelor care apar doar la lansarea aplicației în afara Xcode sau în fundal. Console.app arată, de asemenea, loguri de sistem — kernel, launchd, WindowServer, util pentru depanarea problemelor de nivel scăzut.

Console.app nu necesită instalarea de instrumente suplimentare sau conexiune la internet. Toate datele sunt stocate local în baza de date .tracev3, iar aplicația funcționează complet offline. Pentru vizualizarea logurilor de pe alt Mac sau dispozitiv iOS se folosește comanda log collect urmată de deschiderea .logarchive în Console.app.

Interfața Console.app

Interfața Console.app constă din trei zone principale: panoul lateral cu filtre, tabelul de mesaje și panoul de detalii al mesajului selectat. Panoul lateral conține secțiunile Devices (surse de loguri disponibile), Reports (rapoarte de sistem despre defecțiuni) și Saved Searches (interogări de căutare salvate).

Tabelul de mesaje afișează lista logurilor cu coloanele: Time (marcaj temporal), Category (categorie), Level (nivel de severitate — indicator colorat), Process (numele procesului), Message (textul mesajului). Click pe orice mesaj deschide panoul de detalii, unde sunt afișate subsystem, activity identifier, thread ID și textul complet cu formatare.

Console.app evidențiază mesajele cu culoare: roșu pentru Fault, galben pentru Error, albastru pentru Debug, gri pentru Info. Mesajele Default nu sunt evidențiate. Acest lucru permite scanarea vizuală a fluxului de loguri și observarea instantanee a evenimentelor critice.

swift
// Loguri care vor apărea în 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")

// Aceste mesaje sunt vizibile în Console.app cu filtrul „myapp“

Filtre și căutare în Console.app

Filtrarea — funcția principală a Console.app, care transformă un flux de mii de mesaje pe secundă într-o listă lizibilă. Câmpul de căutare din partea de sus suportă condiții AND: mai multe cuvinte separate prin spațiu afișează doar mesajele care conțin toate cuvintele. De exemplu, myapp error va afișa toate logurile aplicației myapp cu nivelul Error.

Filtrul Subsystem din panoul lateral permite selectarea unuia sau mai multor subsystem-uri. Este cel mai rapid mod de a izola logurile unei aplicații specifice de mesajele de sistem. Filtrul Category este disponibil după selectarea subsystem-ului — arată toate categoriile utilizate de aplicația selectată. Filtrul Level limitează mesajele după nivelul de severitate: se pot afișa doar erorile sau doar mesajele de depanare.

Tip filtruExempluRezultat
Textcrash paymentMesaje care conțin crash ȘI payment
Subsystemcom.example.myappDoar logurile aplicației specificate
LevelError + FaultDoar erori și defecțiuni critice
CategorynetworkMesaje cu categoria network
TimpUltima 1 orăMesaje doar din intervalul selectat

Expresii regulate în căutare

Câmpul de căutare Console.app suportă regex prin construcția REGEX:pattern. Exemplu: REGEX:error.*tim(e|out) va găsi toate mesajele care conțin „error“ și un cuvânt care începe cu „tim“ și se termină cu „e“ sau „out“. Regex funcționează doar în câmpul de căutare, nu în filtrele subsystem sau category.

Modurile Live și Historical

Live — modul în timp real, în care Console.app afișează mesaje noi pe măsură ce apar în bufferul circular al nucleului. Acest mod este activ implicit și este potrivit pentru depanarea unei aplicații în funcțiune: lansați aplicația și vedeți logurile sale cu o întârziere de 1–5 secunde. Butonul Live (sau ⌘L) activează și dezactivează fluxul.

Historical — modul de vizualizare a arhivei. Console.app stochează toate mesajele din ultimele 7–14 zile (configurabil în sistem) în baza de date .tracev3. Modul Historical deschide această arhivă și permite căutarea cu orice filtru, nu doar în fluxul curent. Este indispensabil pentru analiza problemelor care au avut loc noaptea sau când aplicația funcționa fără conexiune la Mac.

Comutarea între moduri se face prin butonul Live din bara de instrumente. Când Live este dezactivat, Console.app afișează date istorice. În acest mod se poate naviga pe axa temporală cu ajutorul calendarului sau butoanelor ← →. Datele Historical sunt disponibile doar pentru logurile salvate pe disc — mesajele suprascrise în bufferul circular nu ajung în arhivă.

Export și partajare loguri

Console.app suportă exportul logurilor filtrate în mai multe formate. File → Export → Save selectează formatul: .logarchive (formatul nativ Apple, include toate metadatele), .txt (text simplu cu coloane) și .json (date structurate cu câmpuri). Pentru atașarea la un raport de bug folosiți .logarchive — poate fi deschis pe orice Mac în Console.app.

Export de pe dispozitiv iOS: prin Xcode (Devices → Open Console) sau prin comanda log collect --device --output ./archive.logarchive în terminal. Fișierul .logarchive obținut se deschide în Console.app pe Mac — logurile provin de pe dispozitivul la distanță, dar filtrele și căutarea funcționează la fel ca cu logurile locale.

swift
// Exportul logurilor dispozitivului iOS prin terminal
// log collect --device --output ./ios_crash.logarchive
// log show --subsystem com.example.app --last 1h --output json

// Exemplu: exportarea logurilor din ultima oră
// log show --predicate 'subsystem == "com.example.myapp"' \
//   --info --debug --last 1h --output json > logs.json

// Parsarea logurilor exportate în Swift
let jsonData = try Data(contentsOf: URL(fileURLWithPath: "logs.json"))
let decoded = try JSONDecoder()
    .decode([LogEntry].self, from: jsonData)

Partajarea logurilor

.logarchive — formatul optim pentru trimiterea unui coleg sau atașarea la un tichet JIRA. Fișierul conține nu doar mesaje, ci și subsystem, category, timestamps, thread IDs și toate metadatele. Dimensiunea arhivei este semnificativ mai mică decât logurile brute datorită compresiei .tracev3. Înainte de trimitere asigurați-vă că logurile nu conțin date private: folosiți filtrul subsystem al aplicației dvs. pentru a exclude logurile de sistem care pot conține informații confidențiale ale altor procese.

Exemple practice de depanare prin Console.app

Diagnosticarea crash-ului fără Xcode: dacă aplicația s-a prăbușit la lansarea din afara Xcode, Console.app va afișa un mesaj Fault de la proces. Găsiți în panoul lateral Reports → Crash Reports — acolo sunt afișate rapoarte complete de prăbușire cu semnătură și stivă. Folosiți filtrul subsystem pentru aplicația dvs. și setați nivelul Error+Fault pentru a vedea toate evenimentele critice înainte de crash.

Analiza performanței prin Console.app

Console.app permite urmărirea întârzierilor în aplicație pe baza marcajelor temporale. Dacă între două mesaje conexe (de exemplu, „Cerere trimisă“ și „Răspuns primit“) a trecut mai mult timp decât era de așteptat — acesta este un semnal de problemă de performanță. Filtrul după subsystem al aplicației dvs. cu nivelul Default va afișa toate evenimentele cheie cu precizie de milisecundă.

Căutarea scurgerii de memorie: la scurgerea de memorie, sistemul trimite un avertisment de memorie prin os_log cu categoria memory și nivelul Error. În Console.app filtrați după cuvântul memory și selectați subsystem-ul dvs. Dacă avertismentul se repetă la fiecare 5–10 secunde — aplicația consumă activ memorie. Suplimentar, puteți activa logurile Debug pentru urmărirea alocărilor.

Depanarea cererilor de rețea: dacă aplicația dvs. folosește os_log pentru evenimente de rețea, Console.app va afișa toate cererile și răspunsurile cu sincronizare. Filtrul category=network reduce zgomotul. Dacă timpul dintre cerere și răspuns depășește așteptările, căutați mesaje cu level=Error — ele vor indica timeout-uri sau erori DNS.

swift
// Structură pentru parsarea logurilor 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"
        }
    }
}

Întrebări frecvente

Unde se află Console.app pe Mac?

Console.app se află în folderul /Applications/Utilities/. Poate fi deschisă prin Spotlight (⌘Spațiu → Console) sau prin Finder → Programe → Utilitare → Consolă. Pictograma aplicației este un balon de vorbire stilizat cu o rotiță dințată.

De ce Console.app arată <private> în loc de valori?

os_log maschează șirurile și obiectele ca private în mod implicit. Console.app le afișează ca <private> în modul de producție. Pentru a vedea valorile reale, lansați aplicația din Xcode sau activați un profil de colectare cu nivelul Debug pentru subsystem-ul dvs.

Cum să filtrez doar logurile aplicației mele?

În panoul lateral Console.app, selectați subsystem-ul dvs. (com.example.app) în secțiunea Devices → dispozitivul dvs. → Processes. Alternativ — introduceți numele procesului în câmpul de căutare și selectați Process: YourApp din lista derulantă.

Cât timp păstrează Console.app logurile?

În mod implicit, macOS păstrează logurile în .tracev3 timp de 7–14 zile în funcție de spațiul disponibil pe disc. La lipsa de spațiu, cele mai vechi loguri sunt șterse automat. Perioada de păstrare poate fi mărită prin sudo log config, dar nu este recomandat pentru mașinile de producție.

Se pot vizualiza logurile unui dispozitiv iOS în Console.app?

Da, conectați dispozitivul iOS la Mac prin USB, deschideți Xcode → Devices → selectați dispozitivul → Open Console. Console.app va afișa logurile dispozitivului conectat în timp real. Pentru colectare autonomă folosiți log collect în terminal cu flagul --device.

Concluzii

  • Console.app — instrument încorporat macOS pentru vizualizarea logurilor unified logging (os_log), care nu necesită Xcode sau instalări suplimentare
  • Filtre — căutare după subsystem, category, nivel de severitate, text și regex cu condiții AND pentru izolarea logării unei aplicații specifice
  • Moduri — Live (flux în timp real cu întârziere de 1–5 secunde) și Historical (arhivă de 7–14 zile) pentru analiza problemelor deja produse
  • Export — .logarchive cu metadate complete pentru transmiterea colegilor, .json pentru analiză programatică, .txt pentru vizualizare rapidă
  • Diagnosticare — găsirea crash-urilor, scurgerilor de memorie și erorilor de rețea fără Xcode prin filtrarea erorilor și defecțiunilor critice cu indicator colorat Fault
  • Dispozitive la distanță — vizualizarea logurilor dispozitivului iOS prin Xcode sau export prin log collect cu deschiderea ulterioară a .logarchive în Console.app pe Mac
  • Confidențialitate — os_log maschează datele <private> în Console.app în modul de producție; pentru depanare folosiți Xcode sau un profil de colectare la nivel Debug

Vom dezvolta o aplicație mobilă la cheie

IT Sectr creează aplicații iOS și Android pentru startup-uri și afaceri din 2017. Vă vom consilia și vă vom propune cea mai bună soluție.

Discutați proiectul

Citiți și