Console.app: bu nədir, funksiyaları və macOS-da logları necə oxumaq olar

Müəllif: IT Sectr Dərc olunub: 2026-05-29 Oxuma vaxtı: 8 dəq

Console.app macOS üçün daxili tətbiqdir, sistem və istifadəçi loglarına baxmaq, filtrləmək və təhlil etmək üçün nəzərdə tutulub. Apple-ın unified logging sistemi (os_log) vasitəsilə real vaxtda mesajları göstərir, tərtibatçıya Xcode-a qoşulmadan kraşları, səhvləri və debug mesajlarını görməyə imkan verir. Apple Support-a görə, Console.app subsystem, category, kritiklik səviyyəsi və proses üzrə filtrləməni, həmçinin logların .logarchive formatında ixracını dəstəkləyir. Bu, Mac-da problemlərin diaqnostikası üçün əvəzolunmaz alətdir: filtrlər və saxlanmış axtarışlar minlərlə sistem mesajı arasında tətbiqdə səhvləri tez tapmağa imkan verir.

Əsas məqamlar

  • Console.app — Apple-ın unified logging sistemi ilə işləyən daxili macOS log baxıcısı
  • Filtrləmə — subsystem, category, səviyyə (Error, Fault, Debug) və mesaj mətni üzrə müntəzəm ifadələr dəstəyi ilə axtarış
  • Rejimlər — Live (real-vaxt axını) və Historical (arxiv logları), alətlər paneli ilə keçid
  • İxrac — logların .logarchive, .txt və .json formatında tərtibatçıya ötürülməsi və ya bug-reporta əlavə edilməsi
  • Saxlanmış axtarışlar — tipik ssenarilər üçün adlandırılmış filtrlər: bütün tətbiq səhvləri, şəbəkə logları, CrashReporter

Console.app nədir

Console.app Apple-ın unified logging sisteminə qrafik interfeysdir. O, köhnə Console tətbiqini əvəz etdi (macOS-un bir hissəsi kimi) və os_log, os_trace və syslog API-ləri vasitəsilə yazılmış bütün sistem və tətbiq loglarına girişi təmin edir. Console.app hər Mac-da /Applications/Utilities/ ünvanında mövcuddur.

Xcode-dan fərqli olaraq, IDE-dən işə salınmış tətbiq üçün yalnız logları göstərir, Console.app eyni anda sistemdəki bütün proseslərin loglarını göstərir. Bu, tətbiq Xcode xaricində və ya fon rejimində işə salındıqda yaranan problemləri diaqnoz etməyə imkan verir. Console.app həmçinin sistem loglarını — kernel, launchd, WindowServer göstərir ki, bu da aşağı səviyyəli problemlərin debugu üçün faydalıdır.

Console.app əlavə alətlərin quraşdırılmasını və ya internetə qoşulmanı tələb etmir. Bütün məlumatlar .tracev3 verilənlər bazasında lokal saxlanılır və tətbiq tamamilə oflayn işləyir. Digər Mac və ya iOS cihazından loglara baxmaq üçün log collect əmrindən istifadə olunur, sonra .logarchive Console.app-də açılır.

Console.app interfeysi

Console.app interfeysi üç əsas sahədən ibarətdir: filtrlərlə yan panel, mesaj cədvəli və seçilmiş mesajın təfərrüat paneli. Yan paneldə Devices (mövcud log mənbələri), Reports (sistem nasazlıq hesabatları) və Saved Searches (saxlanmış axtarış sorğuları) bölmələri var.

Mesaj cədvəli logların siyahısını sütunlarla göstərir: Time (vaxt damğası), Category (kateqoriya), Level (kritiklik səviyyəsi — rəng göstəricisi), Process (proses adı), Message (mesaj mətni). Hər hansı mesaja klik təfərrüat panelini açır, burada subsystem, activity identifier, thread ID və formatlaşdırma ilə tam mətn göstərilir.

Console.app mesajları rənglə vurğulayır: Fault üçün qırmızı, Error üçün sarı, Debug üçün göy, Info üçün boz. Default mesajları vurğulanmır. Bu, log axınını vizual skan etməyə və kritik hadisələri dərhal görməyə imkan verir.

swift
// Console.app-də görünəcək loglar
import OSLog

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

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

// Bu mesajlar Console.app-də "myapp" filtri ilə görünür

Console.app-də filtrlər və axtarış

Filtrləmə — Console.app-in əsas funksiyasıdır, saniyədə minlərlə mesaj axınını oxunaqlı siyahıya çevirir. Yuxarıdakı axtarış sahəsi AND şərtlərini dəstəkləyir: bir neçə söz boşluqla ayrılır və yalnız bütün sözləri ehtiva edən mesajlar göstərilir. Məsələn, myapp error myapp tətbiqinin Error səviyyəli bütün loglarını göstərəcək.

Subsystem filtri yan paneldə bir və ya bir neçə subsystem seçməyə imkan verir. Bu, konkret tətbiqin loglarını sistem mesajlarından təcrid etməyin ən sürətli yoludur. Category filtri subsystem seçildikdən sonra əlçatan olur — seçilmiş tətbiqin istifadə etdiyi bütün kateqoriyaları göstərir. Level filtri mesajları kritiklik səviyyəsinə görə məhdudlaşdırır: yalnız səhvləri və ya yalnız debug mesajlarını göstərmək olar.

Filter növüNümunəNəticə
Mətncrash paymentcrash VƏ payment sözlərini ehtiva edən mesajlar
Subsystemcom.example.myappYalnız göstərilən tətbiqin logları
LevelError + FaultYalnız səhvlər və kritik nasazlıqlar
Categorynetworknetwork kateqoriyası olan mesajlar
VaxtSon 1 saatYalnız seçilmiş intervaldakı mesajlar

Axtarışda müntəzəm ifadələr

Console.app axtarış sahəsi REGEX:pattern konstruksiyası vasitəsilə regex dəstəkləyir. Nümunə: REGEX:error.*tim(e|out) “error” və “tim” ilə başlayıb “e” və ya “out” ilə bitən sözü olan bütün mesajları tapacaq. Regex yalnız axtarış sahəsində işləyir, subsystem və ya category filtrlərində deyil.

Live və Historical rejimləri

Live — real-vaxt rejimi, Console.app nüvənin dairəvi buferində yeni mesajlar göründükcə onları göstərir. Bu rejim standart olaraq aktivdir və işləyən tətbiqin debugu üçün uyğundur: tətbiqi işə salırsınız və onun loglarını 1–5 saniyə gecikmə ilə görürsünüz. Live düyməsi (və ya ⌘L) axını yandırıb söndürür.

Historical — arxivə baxış rejimi. Console.app bütün mesajları son 7–14 gün (sistemdə konfiqurasiya olunur) ərzində .tracev3 verilənlər bazasında saxlayır. Historical rejimi bu arxivi açır və yalnız cari axınla deyil, istənilən filtrlə axtarışa imkan verir. Bu, gecə və ya Mac-a qoşulmadan işləyən tətbiqdə baş verən problemlərin təhlili üçün əvəzolunmazdır.

Rejimlər arasında keçid alətlər panelindəki Live düyməsi ilə həyata keçirilir. Live söndürüldükdə Console.app tarixi məlumatları göstərir. Bu rejimdə təqvim və ya ← → düymələri ilə zaman xətti boyunca hərəkət etmək olar. Historical məlumatlar yalnız diskə yazılmış loglar üçün mövcuddur — dairəvi buferdə üzərinə yazılmış mesajlar arxivə düşmür.

Logların ixracı və paylaşılması

Console.app filtrlənmiş logların bir neçə formatda ixracını dəstəkləyir. File → Export → Save formatı seçir: .logarchive (Apple-ın doğma formatı, bütün metadatanı ehtiva edir), .txt (sütunlarla sadə mətn) və .json (sahələrlə strukturlaşdırılmış məlumat). Bug-reporta əlavə etmək üçün .logarchive istifadə edin — onu istənilən Mac-da Console.app-də açmaq olar.

iOS cihazından ixrac: Xcode (Devices → Open Console) və ya terminalda log collect --device --output ./archive.logarchive əmri ilə. Alınan .logarchive Mac-da Console.app-də açın — loglar uzaq cihazdandır, lakin filtrlər və axtarış lokal loglarla eyni işləyir.

swift
// iOS cihazının loglarının terminal vasitəsilə ixracı
// log collect --device --output ./ios_crash.logarchive
// log show --subsystem com.example.app --last 1h --output json

// Nümunə: son bir saatın loglarını çıxarmaq
// log show --predicate 'subsystem == "com.example.myapp"' \
//   --info --debug --last 1h --output json > logs.json

// İxrac edilmiş logların Swift-də pars edilməsi
let jsonData = try Data(contentsOf: URL(fileURLWithPath: "logs.json"))
let decoded = try JSONDecoder()
    .decode([LogEntry].self, from: jsonData)

Logların birgə istifadəsi

.logarchive — həmkarına göndərmək və ya JIRA tapşırığına əlavə etmək üçün optimal format. Fayl yalnız mesajları deyil, həm də subsystem, category, timestamps, thread IDs və bütün metadatanı ehtiva edir. Arxivin ölçüsü .tracev3 sıxlaşdırması sayəsində xam loglardan əhəmiyyətli dərəcədə kiçikdir. Göndərməzdən əvvəl loglarda şəxsi məlumatların olmadığına əmin olun: digər proseslərin məxfi məlumatlarını ehtiva edə bilən sistem loglarını istisna etmək üçün tətbiqinizin subsystem filtirindən istifadə edin.

Console.app vasitəsilə debugun praktik nümunələri

Xcode olmadan kraşın diaqnostikası: tətbiq Xcode xaricində işə salındıqda çökərsə, Console.app prosesdən Fault mesajı göstərəcək. Yan paneldə Reports → Crash Reports bölməsini tapın — orada imza və stack ilə tam nasazlıq hesabatları göstərilir. Tətbiqiniz üçün subsystem filtrindən istifadə edin və kraşdan əvvəl bütün kritik hadisələri görmək üçün Error+Fault səviyyəsini təyin edin.

Console.app vasitəsilə performans təhlili

Console.app vaxt damğalarına əsasən tətbiqdə gecikmələri izləməyə imkan verir. Əgər iki əlaqəli mesaj arasında (məsələn, “sorğu göndərildi” və “cavab alındı”) gözləniləndən çox vaxt keçibsə — bu performans problemi siqnalıdır. Default səviyyəli tətbiqinizin subsystem filtrindən istifadə edərək bütün əsas hadisələri millisaniyə dəqiqliyi ilə göstərəcək.

Yaddaş sızmasının axtarışı: yaddaş sızması zamanı sistem os_log vasitəsilə memory kateqoriyası və Error səviyyəsi ilə xəbərdarlıq göndərir. Console.app-də memory sözünə görə filtrləyin və öz subsysteminizi seçin. Xəbərdarlıq hər 5–10 saniyədən bir təkrarlanırsa — tətbiq aktiv şəkildə yaddaş istehlak edir. Əlavə olaraq alokasiyaları izləmək üçün Debug loglarını aktivləşdirmək olar.

Şəbəkə sorğularının debugu: tətbiqiniz şəbəkə hadisələri üçün os_log istifadə edirsə, Console.app bütün sorğuları və cavabları vaxtla göstərəcək. category=network filtri səs-küyü azaldacaq. Sorğu və cavab arasında vaxt gözləniləndən çox olarsa, level=Error olan mesajları axtarın — onlar timeout və ya DNS səhvlərini göstərəcək.

swift
// Console.app JSON loglarının pars edilməsi üçün struktur
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"
        }
    }
}

Tez-tez verilən suallar

Console.app Mac-da harada yerləşir?

Console.app /Applications/Utilities/ qovluğunda yerləşir. Onu Spotlight (⌘Boşluq → Console) və ya Finder → Proqramlar → Utilities → Konsol vasitəsilə açmaq olar. Tətbiqin ikonu — dişli çarxlı stilizə edilmiş nitq balonudur.

Niyə Console.app dəyərlər əvəzinə <private> göstərir?

os_log sətirləri və obyektləri standart olaraq private kimi maskalayır. Console.app onları production rejimində <private> kimi göstərir. Həqiqi dəyərləri görmək üçün tətbiqi Xcode-dan işə salın və ya subsysteminiz üçün Debug səviyyəli toplama profilini aktivləşdirin.

Yalnız öz tətbiqimin loglarını necə filtrləmək olar?

Console.app-in yan panelində Devices → cihazınız → Processes bölməsində öz subsysteminizi (com.example.app) seçin. Alternativ olaraq axtarış sahəsinə proses adını yazın və açılan siyahıdan Process: YourApp seçin.

Console.app logları nə qədər saxlayır?

Standart olaraq macOS logları .tracev3-də 7–14 gün ərzində disk sahəsindən asılı olaraq saxlayır. Yer çatışmazlığı olduqda ən köhnə loglar avtomatik silinir. Saxlama müddətini sudo log config vasitəsilə artırmaq olar, lakin bu, production maşınları üçün tövsiyə edilmir.

Console.app-də iOS cihazının loglarına baxmaq olarmı?

Bəli, iOS cihazını USB ilə Mac-a qoşun, Xcode → Devices → cihazı seçin → Open Console açın. Console.app qoşulmuş cihazın loglarını real vaxtda göstərəcək. Müstəqil toplama üçün terminalda log collect əmrindən --device flagı ilə istifadə edin.

Xülasə

  • Console.app — unified logging (os_log) loglarına baxmaq üçün daxili macOS aləti, Xcode və ya əlavə quraşdırma tələb etmir
  • Filtrlər — subsystem, category, kritiklik səviyyəsi, mətn və AND şərtləri ilə regex üzrə axtarış
  • Rejimlər — Live (1–5 saniyə gecikmə ilə real-vaxt axını) və Historical (7–14 günlük arxiv) artıq baş vermiş problemlərin təhlili üçün
  • İxrac — .logarchive tam metadatalarla həmkarlara ötürmək üçün, .json proqram təhlili üçün, .txt sürətli baxış üçün
  • Diaqnostika — Xcode olmadan kraşların, yaddaş sızmalarının və şəbəkə səhvlərinin aşkarlanması
  • Uzaq cihazlar — iOS cihazının loglarına Xcode vasitəsilə baxış və ya log collect ilə ixrac
  • Gizlilik — os_log production rejimində Console.app-də <private> məlumatlarını maskalayır; debug üçün Xcode və ya Debug səviyyəli toplama profilindən istifadə edin

Açar təslim mobil tətbiq hazırlayacağıq

IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.

Layihəni müzakirə et

Həm də oxuyun