Console.app: यह क्या है, विशेषताएँ और macOS में लॉग कैसे पढ़ें

लेखक: IT Sectr प्रकाशित: 2026-05-29 पढ़ने का समय: 8 मिनट

Console.app macOS में सिस्टम और उपयोगकर्ता लॉग को देखने, फ़िल्टर करने और विश्लेषण करने के लिए एक अंतर्निहित एप्लिकेशन है। यह Apple की unified logging प्रणाली (os_log) से रियल-टाइम में संदेश प्रदर्शित करता है, जिससे डेवलपर Xcode से कनेक्ट हुए बिना क्रैश, त्रुटियाँ और डीबग संदेश देख सकता है। Apple Support के अनुसार, Console.app subsystem, category, गंभीरता स्तर और प्रक्रिया द्वारा फ़िल्टरिंग के साथ-साथ .logarchive में लॉग निर्यात करने का समर्थन करता है। यह Mac पर समस्याओं के निदान के लिए एक अपरिहार्य उपकरण है: फ़िल्टर और सहेजी गई खोजें आपको हज़ारों सिस्टम संदेशों के बीच एप्लिकेशन त्रुटियाँ जल्दी से खोजने देती हैं।

मुख्य बिंदु

  • Console.app — macOS में निर्मित लॉग व्यूअर जो Apple की unified logging प्रणाली के साथ काम करता है
  • फ़िल्टरिंग — subsystem, category, स्तर (Error, Fault, Debug) और संदेश टेक्स्ट द्वारा regex समर्थन के साथ खोज
  • मोड — Live (रियल-टाइम स्ट्रीम) और Historical (संग्रहीत लॉग), टूलबार के माध्यम से स्विच करें
  • निर्यात — .logarchive, .txt और .json में लॉग सहेजें डेवलपर को भेजने या बग रिपोर्ट में संलग्न करने के लिए
  • सहेजी गई खोजें — सामान्य परिदृश्यों के लिए नामित फ़िल्टर: सभी एप्लिकेशन त्रुटियाँ, नेटवर्क लॉग, CrashReporter

Console.app क्या है

Console.app Apple की unified logging प्रणाली का एक ग्राफिकल इंटरफ़ेस है। इसने पुराने Console एप्लिकेशन (macOS के भाग के रूप में) को बदल दिया और os_log, os_trace और syslog API के माध्यम से लिखे गए सभी सिस्टम और एप्लिकेशन लॉग तक पहुँच प्रदान करता है। Console.app किसी भी Mac पर /Applications/Utilities/ में स्थित है।

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 के लिए ग्रे। Default संदेश हाइलाइट नहीं किए जाते हैं। यह आपको लॉग स्ट्रीम को दृष्टिगत रूप से स्कैन करने और तुरंत महत्वपूर्ण ईवेंट देखने की अनुमति देता है।

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 एप्लिकेशन के सभी लॉग दिखाता है।

Subsystem फ़िल्टर साइडबार में एक या अधिक subsystem चुनने की अनुमति देता है। यह सिस्टम संदेशों से किसी विशिष्ट एप्लिकेशन के लॉग को अलग करने का सबसे तेज़ तरीका है। Category फ़िल्टर subsystem चुनने के बाद उपलब्ध होता है — यह चयनित एप्लिकेशन द्वारा उपयोग की जाने वाली सभी श्रेणियाँ दिखाता है। Level फ़िल्टर गंभीरता स्तर के अनुसार संदेशों को प्रतिबंधित करता है: केवल त्रुटियाँ या केवल डीबग संदेश दिखाए जा सकते हैं।

फ़िल्टर प्रकारउदाहरणपरिणाम
टेक्स्टcrash paymentसंदेश जिनमें crash और payment दोनों हों
Subsystemcom.example.myappकेवल निर्दिष्ट एप्लिकेशन के लॉग
LevelError + Faultकेवल त्रुटियाँ और गंभीर विफलताएँ
Categorynetworknetwork श्रेणी वाले संदेश
समयपिछला 1 घंटाकेवल चयनित अंतराल के संदेश

खोज में रेगुलर एक्सप्रेशन

Console.app का खोज फ़ील्ड REGEX:pattern निर्माण के माध्यम से regex का समर्थन करता है। उदाहरण: REGEX:error.*tim(e|out) उन सभी संदेशों को ढूँढता है जिनमें “error” और “tim” से शुरू होने वाला और “e” या “out” पर समाप्त होने वाला शब्द हो। Regex केवल खोज फ़ील्ड में काम करता है, subsystem या category फ़िल्टर में नहीं।

Live और Historical मोड

Live रियल-टाइम मोड है जिसमें Console.app कर्नेल रिंग बफ़र में आने पर नए संदेश दिखाता है। यह मोड डिफ़ॉल्ट रूप से सक्रिय है और चल रहे एप्लिकेशन की डीबगिंग के लिए उपयुक्त है: आप एप्लिकेशन लॉन्च करते हैं और 1–5 सेकंड की देरी से इसके लॉग देखते हैं। Live बटन (या ⌘L) स्ट्रीम को चालू और बंद करता है।

Historical संग्रह देखने का मोड है। Console.app पिछले 7–14 दिनों (सिस्टम में कॉन्फ़िगर करने योग्य) से सभी संदेशों को .tracev3 डेटाबेस में संग्रहीत करता है। Historical मोड इस संग्रह को खोलता है और इसमें किसी भी फ़िल्टर का उपयोग करके खोज करने की अनुमति देता है, न कि केवल वर्तमान स्ट्रीम में। यह उन समस्याओं के विश्लेषण के लिए अपरिहार्य है जो रात में हुईं या जब एप्लिकेशन Mac से कनेक्ट हुए बिना चल रहा था।

मोड के बीच स्विचिंग टूलबार में Live बटन के माध्यम से होती है। जब Live बंद होता है, Console.app ऐतिहासिक डेटा दिखाता है। इस मोड में आप कैलेंडर या ← → बटन का उपयोग करके टाइमलाइन पर नेविगेट कर सकते हैं। Historical डेटा केवल उन लॉग के लिए उपलब्ध है जो डिस्क पर सहेजे गए थे — रिंग बफ़र में ओवरराइट किए गए संदेश संग्रह में नहीं आते हैं।

लॉग निर्यात और साझाकरण

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 को Mac पर 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 टिकट से संलग्न करने के लिए इष्टतम प्रारूप है। फ़ाइल में न केवल संदेश बल्कि subsystem, category, टाइमस्टैम्प, थ्रेड ID और सभी मेटाडेटा शामिल हैं। .tracev3 संपीड़न के कारण संग्रह का आकार कच्चे लॉग की तुलना में काफी छोटा होता है। भेजने से पहले सुनिश्चित करें कि लॉग में कोई निजी डेटा नहीं है: अपने एप्लिकेशन के subsystem द्वारा फ़िल्टर का उपयोग करें ताकि सिस्टम लॉग को बाहर किया जा सके जिनमें अन्य प्रक्रियाओं की गोपनीय जानकारी हो सकती है।

Console.app के माध्यम से व्यावहारिक डीबगिंग उदाहरण

Xcode के बिना क्रैश निदान: यदि कोई एप्लिकेशन Xcode के बाहर लॉन्च होने पर क्रैश होता है, Console.app प्रक्रिया से Fault संदेश दिखाएगा। साइडबार में Reports → Crash Reports खोजें — वहाँ हस्ताक्षर और स्टैक के साथ पूर्ण क्रैश रिपोर्ट प्रदर्शित होती हैं। अपने एप्लिकेशन के लिए subsystem फ़िल्टर का उपयोग करें और क्रैश से पहले सभी महत्वपूर्ण ईवेंट देखने के लिए स्तर Error+Fault सेट करें।

Console.app के माध्यम से प्रदर्शन विश्लेषण

Console.app आपको टाइमस्टैम्प का उपयोग करके एप्लिकेशन में देरी को ट्रैक करने की अनुमति देता है। यदि दो संबंधित संदेशों (जैसे, “अनुरोध भेजा गया” और “प्रतिक्रिया प्राप्त हुई”) के बीच अपेक्षा से अधिक समय बीत गया है, तो यह प्रदर्शन समस्या का संकेत है। Default स्तर के साथ आपके एप्लिकेशन के subsystem पर एक फ़िल्टर मिलीसेकंड सटीकता के साथ सभी प्रमुख ईवेंट दिखाएगा।

मेमोरी लीक खोजना: जब मेमोरी लीक होती है, सिस्टम memory श्रेणी और Error स्तर के साथ os_log के माध्यम से मेमोरी चेतावनी भेजता है। Console.app में, memory शब्द से फ़िल्टर करें और अपना subsystem चुनें। यदि चेतावनी हर 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"
        }
    }
}

अक्सर पूछे जाने वाले प्रश्न

Mac पर Console.app कहाँ स्थित है?

Console.app /Applications/Utilities/ फ़ोल्डर में स्थित है। आप इसे Spotlight (⌘Space → Console) या Finder → एप्लिकेशन → यूटिलिटीज़ → Console के माध्यम से खोल सकते हैं। एप्लिकेशन आइकन एक गियर के साथ एक स्टाइलिश स्पीच बबल है।

Console.app मानों के बजाय <private> क्यों दिखाता है?

os_log डिफ़ॉल्ट रूप से स्ट्रिंग और ऑब्जेक्ट को private के रूप में मास्क करता है। Console.app उन्हें प्रोडक्शन मोड में <private> के रूप में प्रदर्शित करता है। वास्तविक मान देखने के लिए, Xcode से एप्लिकेशन लॉन्च करें या अपने subsystem के लिए Debug स्तर के साथ संग्रह प्रोफ़ाइल सक्षम करें।

मैं केवल अपने एप्लिकेशन के लॉग कैसे फ़िल्टर करूँ?

Console.app साइडबार में, Devices → आपका डिवाइस → Processes अनुभाग में अपना subsystem (com.example.app) चुनें। वैकल्पिक रूप से, खोज फ़ील्ड में प्रक्रिया नाम दर्ज करें और ड्रॉपडाउन सूची से Process: YourApp चुनें।

Console.app लॉग कितने समय तक संग्रहीत करता है?

डिफ़ॉल्ट रूप से, macOS उपलब्ध डिस्क स्थान के आधार पर .tracev3 में लॉग को 7–14 दिनों तक संग्रहीत करता है। जब स्थान कम होता है, सबसे पुराने लॉग स्वचालित रूप से हटा दिए जाते हैं। sudo log config के माध्यम से अवधारण अवधि बढ़ाई जा सकती है, लेकिन प्रोडक्शन मशीनों के लिए इसकी अनुशंसा नहीं की जाती है।

क्या मैं Console.app में iOS डिवाइस लॉग देख सकता हूँ?

हाँ, iOS डिवाइस को USB के माध्यम से Mac से कनेक्ट करें, Xcode → Devices खोलें → डिवाइस चुनें → Open Console। Console.app कनेक्टेड डिवाइस से रियल-टाइम में लॉग प्रदर्शित करेगा। ऑफ़लाइन संग्रह के लिए, टर्मिनल में --device फ्लैग के साथ log collect का उपयोग करें।

सारांश

  • Console.app — unified logging (os_log) लॉग देखने के लिए macOS में निर्मित टूल, Xcode या अतिरिक्त स्थापना की आवश्यकता नहीं
  • फ़िल्टर — किसी विशिष्ट एप्लिकेशन के लॉगिंग को अलग करने के लिए AND शर्तों के साथ subsystem, category, गंभीरता स्तर, टेक्स्ट और regex द्वारा खोज
  • मोड — Live (1–5 सेकंड की देरी के साथ रियल-टाइम स्ट्रीम) और Historical (7–14 दिन का संग्रह) पहले से हो चुकी समस्याओं के विश्लेषण के लिए
  • निर्यात — सहकर्मियों के साथ साझा करने के लिए पूर्ण मेटाडेटा के साथ .logarchive, प्रोग्रामेटिक विश्लेषण के लिए .json, त्वरित देखने के लिए .txt
  • निदान — Fault रंग संकेत के साथ त्रुटियों और गंभीर विफलताओं द्वारा फ़िल्टर करके Xcode के बिना क्रैश, मेमोरी लीक और नेटवर्क त्रुटियाँ खोजें
  • दूरस्थ डिवाइस — Xcode के माध्यम से iOS डिवाइस लॉग देखें या log collect के माध्यम से निर्यात करें और Mac पर Console.app में .logarchive खोलें
  • गोपनीयता — os_log प्रोडक्शन मोड में Console.app में <private> डेटा मास्क करता है; डीबगिंग के लिए Xcode या Debug-स्तर संग्रह प्रोफ़ाइल का उपयोग करें

हम एक मोबाइल एप्लिकेशन टर्नकी विकसित करेंगे

IT Sectr 2017 से स्टार्टअप और व्यवसायों के लिए iOS और Android एप्लिकेशन बनाता है। हम आपको सलाह देंगे और सर्वोत्तम समाधान प्रस्तावित करेंगे।

परियोजना पर चर्चा करें

यह भी पढ़ें