Console.app: یہ کیا ہے، خصوصیات اور macOS میں لاگ کیسے پڑھیں

مصنف: IT Sectr اشاعت: 2026-05-29 مطالعے کا وقت: 8 منٹ

Console.app سسٹم اور صارف کے لاگ کو دیکھنے، فلٹر کرنے اور تجزیہ کرنے کے لیے macOS میں ایک بلٹ ان ایپلیکیشن ہے۔ یہ Apple کے یونیفائیڈ لاگنگ سسٹم (os_log) سے ریئل ٹائم میں پیغامات دکھاتا ہے، جس سے ڈویلپر Xcode سے منسلک ہوئے بغیر کریش، خرابیاں اور ڈیبگ پیغامات دیکھ سکتا ہے۔ Apple Support کے مطابق، Console.app سب سسٹم، زمرہ، اہمیت کی سطح اور عمل کے لحاظ سے فلٹرنگ کے ساتھ ساتھ .logarchive میں لاگ ایکسپورٹ کرنے کی بھی حمایت کرتا ہے۔ میک پر مسائل کی تشخیص کے لیے یہ ایک ناگزیر ٹول ہے: فلٹرز اور محفوظ کردہ تلاشیاں آپ کو ہزاروں سسٹم پیغامات میں سے ایپلیکیشن کی خرابیاں جلدی سے تلاش کرنے دیتی ہیں۔

اہم نکات

  • Console.app — macOS میں بلٹ ان لاگ ویور جو Apple کے یونیفائیڈ لاگنگ سسٹم کے ساتھ کام کرتا ہے
  • فلٹرنگ — ریجیکس سپورٹ کے ساتھ سب سسٹم، زمرہ، سطح (Error, Fault, Debug) اور پیغام کے متن کے لحاظ سے تلاش
  • موڈز — Live (ریئل ٹائم سٹریم) اور Historical (آرکائیو شدہ لاگ)، ٹول بار کے ذریعے سوئچ کریں
  • ایکسپورٹ — .logarchive، .txt اور .json میں لاگ محفوظ کریں تاکہ ڈویلپر کو بھیجیں یا بگ رپورٹ میں منسلک کریں
  • محفوظ کردہ تلاشیاں — عام منظرناموں کے لیے نامی فلٹرز: تمام ایپ خرابیاں، نیٹ ورک لاگ، CrashReporter

Console.app کیا ہے

Console.app Apple کے یونیفائیڈ لاگنگ سسٹم کا ایک گرافیکل انٹرفیس ہے۔ اس نے پرانی Console ایپلیکیشن (macOS کے حصے کے طور پر) کی جگہ لے لی ہے اور os_log، os_trace اور syslog APIs کے ذریعے لکھے گئے تمام سسٹم اور ایپلیکیشن لاگ تک رسائی فراہم کرتا ہے۔ Console.app کسی بھی میک پر /Applications/Utilities/ میں واقع ہے۔

Xcode کے برعکس، جو صرف IDE سے لانچ کردہ ایپلیکیشن کے لاگ دکھاتا ہے، Console.app بیک وقت سسٹم پر تمام عملوں کے لاگ دکھاتا ہے۔ یہ ان مسائل کی تشخیص کی اجازت دیتا ہے جو صرف اس وقت ہوتے ہیں جب ایپلیکیشن Xcode کے باہر یا بیک گراؤنڈ میں لانچ کی جاتی ہے۔ Console.app سسٹم لاگ — kernel، launchd، WindowServer بھی دکھاتا ہے، جو نچلی سطح کے مسائل کی ڈیبگنگ کے لیے مفید ہے۔

Console.app کو اضافی ٹولز کی تنصیب یا انٹرنیٹ کنکشن کی ضرورت نہیں ہے۔ تمام ڈیٹا مقامی طور پر .tracev3 ڈیٹا بیس میں محفوظ ہوتا ہے، اور ایپلیکیشن مکمل طور پر آف لائن کام کرتی ہے۔ کسی دوسرے میک یا iOS ڈیوائس سے لاگ دیکھنے کے لیے، log collect کمانڈ استعمال کریں اور پھر .logarchive کو Console.app میں کھولیں۔

Console.app انٹرفیس

Console.app انٹرفیس تین اہم علاقوں پر مشتمل ہے: فلٹرز کے ساتھ سائڈبار، پیغامات کی میز اور منتخب کردہ پیغام کی تفصیلات کا پینل۔ سائڈبار میں Devices (دستیاب لاگ ذرائع)، Reports (سسٹم کریش رپورٹس) اور Saved Searches (محفوظ کردہ تلاش کے سوالات) کے حصے شامل ہیں۔

پیغامات کی میز کالموں کے ساتھ لاگ کی فہرست دکھاتی ہے: Time (ٹائم سٹیمپ)، Category (زمرہ)، Level (اہمیت کی سطح — رنگ کوڈڈ)، Process (عمل کا نام)، Message (پیغام کا متن)। کسی بھی پیغام پر کلک کرنے سے تفصیلات کا پینل کھلتا ہے جو سب سسٹم، سرگرمی کا شناخت کنندہ، تھریڈ 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 Error سطح کے ساتھ myapp ایپلیکیشن کے تمام لاگ دکھاتا ہے۔

سائڈبار میں سب سسٹم فلٹر ایک یا زیادہ سب سسٹم منتخب کرنے کی اجازت دیتا ہے۔ یہ سسٹم پیغامات سے کسی مخصوص ایپلیکیشن کے لاگ کو الگ کرنے کا سب سے تیز طریقہ ہے۔ زمرہ فلٹر سب سسٹم منتخب کرنے کے بعد دستیاب ہوتا ہے — یہ منتخب کردہ ایپلیکیشن کے ذریعے استعمال ہونے والے تمام زمرے دکھاتا ہے۔ سطح فلٹر پیغامات کو اہمیت کی سطح کے مطابق محدود کرتا ہے: صرف خرابیاں یا صرف ڈیبگ پیغامات دکھائے جا سکتے ہیں۔

فلٹر کی قسممثالنتیجہ
متنcrash paymentپیغامات جن میں crash اور payment دونوں ہوں
Subsystemcom.example.myappصرف مخصوص ایپلیکیشن کے لاگ
LevelError + Faultصرف خرابیاں اور سنگین ناکامیاں
Categorynetworknetwork زمرے کے پیغامات
وقتگزشتہ 1 گھنٹہصرف منتخب کردہ وقفے کے پیغامات

تلاش میں ریگولر ایکسپریشنز

Console.app کا تلاش کا فیلڈ REGEX:pattern تعمیر کے ذریعے ریگولر ایکسپریشنز کو سپورٹ کرتا ہے۔ مثال: REGEX:error.*tim(e|out) تمام پیغامات ڈھونڈتا ہے جن میں “error” اور ایک لفظ ہو جو “tim” سے شروع ہو اور “e” یا “out” پر ختم ہو۔ ریگولر ایکسپریشنز صرف تلاش کے فیلڈ میں کام کرتے ہیں، سب سسٹم یا زمرہ کے فلٹرز میں نہیں۔

Live اور Historical موڈ

Live ریئل ٹائم موڈ ہے جس میں Console.app کرنل رنگ بفر میں نئے پیغامات ظاہر ہوتے ہی دکھاتا ہے۔ یہ موڈ ڈیفالٹ طور پر فعال ہے اور چلتی ہوئی ایپلیکیشن کی ڈیبگنگ کے لیے موزوں ہے: آپ ایپلیکیشن لانچ کرتے ہیں اور 1 سے 5 سیکنڈ کی تاخیر سے اس کے لاگ دیکھتے ہیں۔ Live بٹن (یا ⌘L) سٹریم کو آن اور آف کرتا ہے۔

Historical آرکائیو دیکھنے کا موڈ ہے۔ Console.app پچھلے 7 سے 14 دنوں (سسٹم میں کنفیگر ایبل) کے تمام پیغامات کو .tracev3 ڈیٹا بیس میں محفوظ کرتا ہے۔ Historical موڈ اس آرکائیو کو کھولتا ہے اور اس میں کسی بھی فلٹر کا استعمال کرتے ہوئے تلاش کرنے کی اجازت دیتا ہے، نہ کہ صرف موجودہ سٹریم میں۔ یہ ان مسائل کے تجزیہ کے لیے ناگزیر ہے جو رات کو پیش آئے یا جب ایپلیکیشن میک سے منسلک ہوئے بغیر چل رہی تھی۔

موڈز کے درمیان سوئچنگ ٹول بار میں Live بٹن کے ذریعے ہوتی ہے۔ جب Live بند ہوتا ہے، Console.app تاریخی ڈیٹا دکھاتا ہے۔ اس موڈ میں آپ کیلنڈر یا ← → بٹن کا استعمال کرتے ہوئے ٹائم لائن پر نیویگیٹ کر سکتے ہیں۔ تاریخی ڈیٹا صرف ان لاگز کے لیے دستیاب ہے جو ڈسک پر محفوظ کیے گئے تھے — وہ پیغامات جو رنگ بفر میں اوور رائٹ ہو گئے تھے آرکائیو میں ظاہر نہیں ہوتے۔

لاگ ایکسپورٹ اور شیئرنگ

Console.app متعدد فارمیٹس میں فلٹر شدہ لاگ کی ایکسپورٹ کو سپورٹ کرتا ہے۔ File → Export → Save فارمیٹ منتخب کرنے کی اجازت دیتا ہے: .logarchive (Apple کا مقامی فارمیٹ، تمام میٹا ڈیٹا شامل)، .txt (کالموں کے ساتھ سادہ متن) اور .json (فیلڈز کے ساتھ سٹرکچرڈ ڈیٹا)۔ بگ رپورٹ میں منسلک کرنے کے لیے .logarchive استعمال کریں — اسے کسی بھی میک پر Console.app میں کھولا جا سکتا ہے۔

iOS ڈیوائس سے ایکسپورٹ: Xcode (Devices → Open Console) کے ذریعے یا ٹرمینل میں log collect --device --output ./archive.logarchive کمانڈ کے ذریعے۔ نتیجے میں ملنے والے .logarchive کو میک پر Console.app میں کھولیں — لاگ دور دراز ڈیوائس سے آتے ہیں، لیکن فلٹرز اور تلاش مقامی لاگ کی طرح کام کرتے ہیں۔

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 ٹکٹ میں منسلک کرنے کے لیے بہترین فارمیٹ ہے۔ فائل میں نہ صرف پیغامات بلکہ سب سسٹم، زمرہ، ٹائم سٹیمپ، تھریڈ IDs اور تمام میٹا ڈیٹا شامل ہوتا ہے۔ .tracev3 کمپریشن کی بدولت آرکائیو کا سائز خام لاگ سے نمایاں طور پر چھوٹا ہوتا ہے۔ بھیجنے سے پہلے یقینی بنائیں کہ لاگ میں کوئی نجی ڈیٹا نہیں ہے: اپنی ایپلیکیشن کے سب سسٹم کے مطابق فلٹر استعمال کریں تاکہ ان سسٹم لاگ کو خارج کیا جا سکے جن میں دوسرے عملوں کی خفیہ معلومات ہو سکتی ہیں۔

Console.app کے ساتھ عملی ڈیبگنگ کی مثالیں

Xcode کے بغیر کریش کی تشخیص: اگر کوئی ایپلیکیشن Xcode کے باہر لانچ ہونے پر کریش ہوتی ہے، Console.app عمل سے Fault پیغام دکھائے گا۔ سائڈبار میں Reports → Crash Reports تلاش کریں — وہاں دستخط اور سٹیک کے ساتھ مکمل کریش رپورٹس ظاہر ہوتی ہیں۔ اپنی ایپلیکیشن کے لیے سب سسٹم فلٹر استعمال کریں اور کریش سے پہلے تمام اہم واقعات دیکھنے کے لیے سطح Error+Fault سیٹ کریں۔

Console.app کے ذریعے کارکردگی کا تجزیہ

Console.app آپ کو ٹائم سٹیمپ کا استعمال کرتے ہوئے ایپلیکیشن میں تاخیر کو ٹریک کرنے کی اجازت دیتا ہے۔ اگر دو متعلقہ پیغامات (مثلاً، “درخواست بھیج دی گئی” اور “جواب موصول ہوا”) کے درمیان توقع سے زیادہ وقت گزر گیا ہے، تو یہ کارکردگی کے مسئلے کا اشارہ ہے۔ ڈیفالٹ سطح کے ساتھ آپ کی ایپلیکیشن کے سب سسٹم پر ایک فلٹر ملی سیکنڈ کی درستگی کے ساتھ تمام اہم واقعات دکھائے گا۔

میموری لیک تلاش کرنا: جب میموری لیک ہوتی ہے، سسٹم memory زمرہ اور Error سطح کے ساتھ os_log کے ذریعے میموری وارننگ بھیجتا ہے۔ Console.app میں، memory لفظ سے فلٹر کریں اور اپنا سب سسٹم منتخب کریں۔ اگر وارننگ ہر 5 سے 10 سیکنڈ میں دہرائی جاتی ہے، تو ایپلیکیشن فعال طور پر میموری استعمال کر رہی ہے۔ آپ مختص کو ٹریک کرنے کے لیے Debug لاگ بھی فعال کر سکتے ہیں۔

نیٹ ورک کی درخواستوں کی ڈیبگنگ: اگر آپ کی ایپلیکیشن نیٹ ورک واقعات کے لیے os_log استعمال کرتی ہے، Console.app تمام درخواستیں اور جوابات وقت کے ساتھ دکھائے گا۔ category=network فلٹر شور کو کم کرتا ہے۔ اگر درخواست اور جواب کے درمیان کا وقت توقع سے زیادہ ہو تو، level=Error والے پیغامات تلاش کریں — وہ ٹائم آؤٹ یا DNS خرابیوں کی نشاندہی کریں گے۔

swift
// Console.app JSON لاگ پارس کرنے کا ڈھانچہ
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 کہاں واقع ہے؟

Console.app /Applications/Utilities/ فولڈر میں واقع ہے۔ آپ اسے Spotlight (⌘Space → Console) یا Finder → ایپلیکیشنز → یوٹیلیٹیز → Console کے ذریعے کھول سکتے ہیں۔ ایپلیکیشن کا آئیکن ایک گیئر کے ساتھ ایک اسٹائلائزڈ اسپیچ ببل ہے۔

Console.app قدروں کے بجائے <private> کیوں دکھاتا ہے؟

os_log ڈیفالٹ طور پر سٹرنگز اور آبجیکٹ کو private کے طور پر ماسک کرتا ہے۔ Console.app انہیں پروڈکشن موڈ میں <private> کے طور پر دکھاتا ہے۔ حقیقی قدریں دیکھنے کے لیے، Xcode سے ایپلیکیشن لانچ کریں یا اپنے سب سسٹم کے لیے Debug سطح کے ساتھ کلیکشن پروفائل فعال کریں۔

میں صرف اپنی ایپلیکیشن کے لاگ کیسے فلٹر کروں؟

Console.app سائڈبار میں، Devices → آپ کا ڈیوائس → Processes سیکشن میں اپنا سب سسٹم (com.example.app) منتخب کریں۔ متبادل کے طور پر، تلاش کے فیلڈ میں عمل کا نام درج کریں اور ڈراپ ڈاؤن فہرست سے Process: YourApp منتخب کریں۔

Console.app کتنی دیر تک لاگ محفوظ کرتا ہے؟

ڈیفالٹ طور پر، macOS دستیاب ڈسک کی جگہ کے لحاظ سے .tracev3 میں لاگ 7 سے 14 دن محفوظ کرتا ہے۔ جب جگہ کم ہوتی ہے، سب سے پرانے لاگ خود بخود حذف ہو جاتے ہیں۔ sudo log config کے ذریعے برقرار رکھنے کی مدت بڑھائی جا سکتی ہے، لیکن پروڈکشن مشینوں کے لیے اس کی سفارش نہیں کی جاتی۔

کیا میں Console.app میں iOS ڈیوائس کے لاگ دیکھ سکتا ہوں؟

ہاں، iOS ڈیوائس کو USB کے ذریعے میک سے منسلک کریں، Xcode → Devices کھولیں → ڈیوائس منتخب کریں → Open Console۔ Console.app منسلک ڈیوائس سے ریئل ٹائم میں لاگ دکھائے گا۔ آف لائن جمع کرنے کے لیے، ٹرمینل میں --device پرچم کے ساتھ log collect استعمال کریں۔

خلاصہ

  • Console.app — یونیفائیڈ لاگنگ (os_log) لاگ دیکھنے کے لیے macOS میں بلٹ ان ٹول، Xcode یا اضافی تنصیب کی ضرورت نہیں
  • فلٹرز — AND شرائط کے ساتھ سب سسٹم، زمرہ، اہمیت کی سطح، متن اور ریجیکس کے ذریعے تلاش کر کے کسی مخصوص ایپلیکیشن کی لاگنگ کو الگ کریں
  • موڈز — Live (1 سے 5 سیکنڈ کی تاخیر کے ساتھ ریئل ٹائم سٹریم) اور Historical (7 سے 14 دن کا آرکائیو) پہلے سے پیش آنے والے مسائل کے تجزیہ کے لیے
  • ایکسپورٹ — ساتھیوں کے ساتھ شیئر کرنے کے لیے مکمل میٹا ڈیٹا کے ساتھ .logarchive، پروگرامیٹک تجزیہ کے لیے .json، فوری دیکھنے کے لیے .txt
  • تشخیص — Fault رنگ کے اشارے کے ساتھ خرابیوں اور سنگین ناکامیوں کے ذریعے فلٹر کر کے Xcode کے بغیر کریش، میموری لیک اور نیٹ ورک کی خرابیاں تلاش کریں
  • دور دراز ڈیوائسز — Xcode کے ذریعے iOS ڈیوائس لاگ دیکھیں یا log collect کے ذریعے ایکسپورٹ کریں اور میک پر Console.app میں .logarchive کھولیں
  • رازداری — os_log پروڈکشن موڈ میں Console.app میں <private> ڈیٹا ماسک کرتا ہے؛ ڈیبگنگ کے لیے Xcode یا Debug سطح کا کلیکشن پروفائل استعمال کریں

ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے

IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔

پروجیکٹ پر بحث کریں

مزید پڑھیں