Console.app — bu tizim va foydalanuvchi loglarini ko‘rish, filtrlash va tahlil qilish uchun macOS-ga o‘rnatilgan ilova. U Apple-ning unified logging tizimi (os_log) orqali real vaqtda xabarlarni ko‘rsatadi va dasturchiga Xcode-ga ulanmasdan kraşlar, xatolar va disk raskladka xabarlarini ko‘rish imkonini beradi. Apple Support ma’lumotlariga ko‘ra, Console.app subsystem, category, jiddiylik darajasi va jarayon bo‘yicha filtrlashni, shuningdek loglarni .logarchive formatida eksport qilishni qo‘llab-quvvatlaydi. Bu Mac-da muammolarni diagnostika qilish uchun ajralmas vositadir: filtrlar va saqlangan qidiruvlar minglab tizim xabarlari orasida ilovadagi xatolarni tez topishga imkon beradi.
Asosiy ma’lumotlar
Console.app Apple-ning unified logging tizimiga grafik interfeysdir. U eski Console ilovasini (macOS qismi sifatida) almashtirdi va os_log, os_trace hamda syslog API-lari orqali yozilgan barcha tizim va ilova loglariga kirishni ta’minlaydi. Console.app har bir Mac-da /Applications/Utilities/ manzilida mavjud.
Xcode-dan farqli o‘laroq, faqat IDE-dan ishga tushirilgan ilovaning loglarini ko‘rsatadi, Console.app bir vaqtning o‘zida tizimdagi barcha jarayonlarning loglarini ko‘rsatadi. Bu ilova Xcode tashqarisida yoki fon rejimida ishga tushirilganda yuzaga keladigan muammolarni diagnostika qilish imkonini beradi. Console.app shuningdek tizim loglarini — kernel, launchd, WindowServer ko‘rsatadi, bu past darajadagi muammolarni disk raskladka qilish uchun foydali.
Console.app qo‘shimcha vositalarni o‘rnatishni yoki internetga ulanishni talab qilmaydi. Barcha ma’lumotlar .tracev3 ma’lumotlar bazasida mahalliy saqlanadi va ilova to‘liq oflayn ishlaydi. Boshqa Mac yoki iOS qurilmasidan loglarni ko‘rish uchun log collect buyrug‘i ishlatiladi, so‘ngra .logarchive Console.app-da ochiladi.
Console.app interfeysi uchta asosiy sohadan iborat: filtrlar bilan yon panel, xabarlar jadvali va tanlangan xabarning tafsilot paneli. Yon panelda Devices (mavjud log manbalari), Reports (tizim nosozlik hisobotlari) va Saved Searches (saqlangan qidiruv so‘rovlari) bo‘limlari mavjud.
Xabarlar jadvali loglar ro‘yxatini ustunlar bilan ko‘rsatadi: Time (vaqt tamg‘asi), Category (kategoriya), Level (jiddiylik darajasi — rang ko‘rsatkichi), Process (jarayon nomi), Message (xabar matni). Istalgan xabarni bosish tafsilot panelini ochadi, unda subsystem, activity identifier, thread ID va formatlash bilan to‘liq matn ko‘rsatiladi.
Console.app xabarlarni rang bilan ajratib ko‘rsatadi: Fault uchun qizil, Error uchun sariq, Debug uchun ko‘k, Info uchun kulrang. Default xabarlari ajratilmaydi. Bu log oqimini vizual skanerlash va kritik hodisalarni darhol payqash imkonini beradi.
// Console.app-da ko‘rinadigan loglar
import OSLog
let logger = Logger(
subsystem: "com.example.myapp",
category: "network"
)
logger.error("Connection failed: timeout")
logger.debug("Retry attempt 3 of 5")
// Ushbu xabarlar Console.app-da “myapp” filtri bilan ko‘rinadi
Filtrlash — Console.app-ning asosiy funksiyasi bo‘lib, sekundiga minglab xabarlar oqimini o‘qiladigan ro‘yxatga aylantiradi. Yuqoridagi qidiruv maydoni AND shartlarini qo‘llab-quvvatlaydi: bir nechta so‘z bo‘shliq bilan ajratiladi va faqat barcha so‘zlarni o‘z ichiga olgan xabarlar ko‘rsatiladi. Masalan, myapp error myapp ilovasining Error darajasidagi barcha loglarini ko‘rsatadi.
Subsystem filtri yon panelda bir yoki bir nechta subsystemni tanlash imkonini beradi. Bu ma’lum bir ilova loglarini tizim xabarlaridan ajratishning eng tezkor usulidir. Category filtri subsystem tanlangandan so‘ng mavjud bo‘ladi — tanlangan ilova foydalanadigan barcha kategoriyalarni ko‘rsatadi. Level filtri xabarlarni jiddiylik darajasi bo‘yicha cheklaydi: faqat xatolar yoki faqat disk raskladka xabarlarini ko‘rsatish mumkin.
| Filtr turi | Misol | Natija |
|---|---|---|
| Matn | crash payment | crash VA payment so‘zlarini o‘z ichiga olgan xabarlar |
| Subsystem | com.example.myapp | Faqat ko‘rsatilgan ilova loglari |
| Level | Error + Fault | Faqat xatolar va kritik nosozliklar |
| Category | network | network kategoriyali xabarlar |
| Vaqt | Oxirgi 1 soat | Faqat tanlangan intervaldagi xabarlar |
Console.app qidiruv maydoni REGEX:pattern konstruksiyasi orqali regexni qo‘llab-quvvatlaydi. Misol: REGEX:error.*tim(e|out) “error” va “tim” bilan boshlanib “e” yoki “out” bilan tugaydigan so‘zni o‘z ichiga olgan barcha xabarlarni topadi. Regex faqat qidiruv maydonida ishlaydi, subsystem yoki category filtrlarida emas.
Live — real-vaqt rejimi, unda Console.app yadroning halqali buferida yangi xabarlar paydo bo‘lishi bilan ularni ko‘rsatadi. Bu rejim sukut bo‘yicha faol va ishlayotgan ilovani disk raskladka qilish uchun mos keladi: siz ilovani ishga tushirasiz va uning loglarini 1–5 soniya kechikish bilan ko‘rasiz. Live tugmasi (yoki ⌘L) oqimni yoqadi va o‘chiradi.
Historical — arxivni ko‘rish rejimi. Console.app barcha xabarlarni so‘nggi 7–14 kun (tizimda sozlanishi) davomida .tracev3 ma’lumotlar bazasida saqlaydi. Historical rejimi ushbu arxivni ochadi va faqat joriy oqim bo‘yicha emas, balki istalgan filtrlar bo‘yicha qidirish imkonini beradi. Bu kechasi yoki Mac-ga ulanmasdan ishlagan ilovada yuz bergan muammolarni tahlil qilish uchun ajralmas hisoblanadi.
Rejimlar o‘rtasida almashtirish asboblar panelidagi Live tugmasi orqali amalga oshiriladi. Live o‘chirilganda, Console.app tarixiy ma’lumotlarni ko‘rsatadi. Ushbu rejimda taqvim yoki ← → tugmalari yordamida vaqt chizig‘i bo‘ylab harakatlanish mumkin. Historical ma’lumotlar faqat diskka saqlangan loglar uchun mavjud — halqali buferda qayta yozilgan xabarlar arxivga tushmaydi.
Console.app filtrlangan loglarni bir nechta formatda eksport qilishni qo‘llab-quvvatlaydi. File → Export → Save formatni tanlaydi: .logarchive (Apple-ning mahalliy formati, barcha metama’lumotlarni o‘z ichiga oladi), .txt (ustunlar bilan oddiy matn) va .json (maydonlar bilan tuzilgan ma’lumotlar). Bug-reportga biriktirish uchun .logarchive dan foydalaning — uni istalgan Mac-da Console.app-da ochish mumkin.
iOS qurilmasidan eksport: Xcode (Devices → Open Console) yoki terminalda log collect --device --output ./archive.logarchive buyrug‘i orqali. Olingan .logarchive ni Mac-da Console.app-da oching — loglar uzoq qurilmadan, ammo filtrlar va qidiruv mahalliy loglar bilan bir xil ishlaydi.
// iOS qurilmasi loglarining terminal orqali eksporti
// log collect --device --output ./ios_crash.logarchive
// log show --subsystem com.example.app --last 1h --output json
// Misol: so‘nggi bir soat loglarini eksport qilish
// log show --predicate 'subsystem == "com.example.myapp"' \
// --info --debug --last 1h --output json > logs.json
// Eksport qilingan loglarni Swift-da pars qilish
let jsonData = try Data(contentsOf: URL(fileURLWithPath: "logs.json"))
let decoded = try JSONDecoder()
.decode([LogEntry].self, from: jsonData)
.logarchive — hamkasbga yuborish yoki JIRA topshiriğiga biriktirish uchun optimal format. Fayl faqat xabarlarni emas, balki subsystem, category, timestamps, thread IDs va barcha metama’lumotlarni o‘z ichiga oladi. Arxiv hajmi .tracev3 siqilishi tufayli xom loglardan sezilarli darajada kichikroq. Yuborishdan oldin loglarda shaxsiy ma’lumotlar yo‘qligiga ishonch hosil qiling: boshqa jarayonlarning maxfiy ma’lumotlarini o‘z ichiga olishi mumkin bo‘lgan tizim loglarini chiqarib tashlash uchun ilovangizning subsystem filtridan foydalaning.
Xcode-siz kras diagnostiıkasi: agar ilova Xcode tashqarisida ishga tushirilganda qulab tushsa, Console.app jarayondan Fault xabarini ko‘rsatadi. Yon panelda Reports → Crash Reports bo‘limini toping — u erda imzo va stek bilan to‘liq nosozlik hisobotlari ko‘rsatiladi. Ilovangiz uchun subsystem filtridan foydalaning va krasdan oldin barcha kritik hodisalarni ko‘rish uchun Error+Fault darajasini o‘rnating.
Console.app vaqt tamg‘alari asosida ilovadagi kechikishlarni kuzatish imkonini beradi. Agar ikkita bog‘liq xabar o‘rtasida (masalan, “so‘rov yuborildi” va “javob olindi”) kutilganidan ko‘proq vaqt o‘tgan bo‘lsa — bu samaradorlik muammosi haqida signaldir. Default darajasidagi ilovangizning subsystem filtri barcha asosiy hodisalarni millisekund aniqligida ko‘rsatadi.
Xotira oqishini qidirish: xotira oqishi paytida tizim os_log orqali memory kategoriyasi va Error darajasi bilan ogohlantirish yuboradi. Console.app-da memory so‘zi bo‘yicha filtrlang va o‘z subsystemingizni tanlang. Agar ogohlantirish har 5–10 soniyada takrorlansa — ilova faol xotira iste’mol qilmoqda. Qo‘shimcha ravishda ajratmalarni kuzatish uchun Debug loglarini yoqish mumkin.
Tarmoq so‘rovlarini disk raskladka qilish: agar ilovangiz tarmoq hodisalari uchun os_log dan foydalansa, Console.app barcha so‘rovlar va javoblarni vaqt bilan ko‘rsatadi. category=network filtri shovqinni kamaytiradi. Agar so‘rov va javob o‘rtasidagi vaqt kutilganidan oshsa, level=Error bo‘lgan xabarlarni qidiring — ular taymut yoki DNS xatolarini ko‘rsatadi.
// Console.app JSON loglarini pars qilish uchun struktura
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 beriladigan savollar
Console.app /Applications/Utilities/ jildida joylashgan. Uni Spotlight (⌘Boş joy → Console) yoki Finder → Programmalar → Utilities → Konsol orqali ochish mumkin. Ilova belgisi — tishli g‘ildirakcha bilan stilize qilingan nutq pufakchasi.
os_log satrlar va ob’ektlarni sukut bo‘yicha private sifatida niqoblaydi. Console.app ularni ishlab chiqarish rejimida <private> sifatida ko‘rsatadi. Haqiqiy qiymatlarni ko‘rish uchun ilovani Xcode-dan ishga tushiring yoki subsystemingiz uchun Debug darajasidagi yig‘ish profilini yoqing.
Console.app-ning yon panelida Devices → qurilmangiz → Processes bo‘limida o‘z subsystemingizni (com.example.app) tanlang. Shu bilan birga — qidiruv maydoniga jarayon nomini yozing va ochiladigan ro‘yxatdan Process: YourApp ni tanlang.
Sukut bo‘yicha macOS loglarni .tracev3 da diskdagi mavjud bo‘sh joyga qarab 7–14 kun davomida saqlaydi. Joy yetishmasa, eng eski loglar avtomatik o‘chiriladi. Saqlash muddatini sudo log config orqali oshirish mumkin, ammo bu ishlab chiqarish mashinalari uchun tavsiya etilmaydi.
Ha, iOS qurilmasini USB orqali Mac-ga ulang, Xcode → Devices → qurilmani tanlang → Open Console ni oching. Console.app ulangan qurilmaning loglarini real vaqtda ko‘rsatadi. Mustaqil yig‘ish uchun terminalda log collect buyrug‘idan --device bayrog‘i bilan foydalaning.
Xulosa
Biz kalit topshirig'i bilan mobil ilovani ishlab chiqamiz
IT Sectr 2017-yildan beri startaplar va korxonalar uchun iOS va Android ilovalarini yaratadi. Biz sizga maslahat beramiz va eng yaxshi yechimni taklif qilamiz.