2008-12-19 13 views
42

पर सिसलॉग आउटपुट पढ़ना मेरे पास एक प्रोग्राम है जो लिनक्स के लिए लिखा गया था और मैं इसे अपने मैकोज़ 10.5 मशीन पर बनाने और चलाने की कोशिश कर रहा हूं। कार्यक्रम बिना किसी समस्या के बनाता है और चलता है, हालांकि यह syslog को कई कॉल करता है। मुझे पता है कि syslogd मेरे मैक पर चल रहा है, हालांकि मुझे लगता है कि मेरे syslog कॉल आउटपुट कहां हैं।मैक

syslog कॉल प्रपत्र

syslog (LOG_WARNING, "Log message"); 

किसी भी विचार, जहां मैं अपने लॉग उत्पादन मिल सकती है की कर रहे हैं?

उत्तर

12

संदेह में, हमेशा man syslog होता है।

आप अपने संदेश /var/log/syslog में पा सकते हैं; मेरी मशीन बॉक्स के बाहर सेट है जिसमें केवल उच्च स्तरीय संदेश शामिल हैं ताकि आपको अपनी सेटिंग्स की आवश्यकता हो।

तुम भी syslog (1), के माध्यम से संदेशों को पढ़ने या की तरह

$ syslog -s -l INFO "Hello, world." 

एक कमांड के साथ एक परीक्षण संदेश बना सकते हैं पी के एक गंभीरता ("आतंक") का उपयोग करें और आप एक मिल जाएगा तुरंत अपने कंसोल पर रोमांचक संदेश।

+0

क्या इसे सूडो की आवश्यकता नहीं है? –

+0

मैक पर नहीं। यह की तरह नहीं है आतंक meassage वास्तव में एक आतंक का कारण बनता है: [email protected] से सोम जनवरी 14 22:41:57 कंसोल पर 499 $ syslog -s -l पी 'अलविदा क्रूर दुनिया " प्रसारण संदेश: अंतिम लॉगइन (कोई tty) 23:57 एमएसटी पर ... अलविदा क्रूर दुनिया –

40

आप लॉगफाइल देखने के लिए Console.app प्रोग्राम का भी उपयोग कर सकते हैं। यह purdy है।

+19

उम, Console.app स्वचालित रूप से 'system.log', और अन्य लॉग फ़ाइलों को दिखाता है। –

+1

क्या पर्डी है ?? – Pacerier

+0

@Pacerier मैं इस मामले में विश्वास करता हूं, "purdy" शब्द "सुंदर" शब्द का एक विनोदी उच्चारण है। –

3

चार्ली जवाब पर बिल्डिंग, मैं जोड़ने के लिए है कि आप एक बार देख लेना चाहिए syslog.conf(5) की मैनपेज पर है और यह भी (फ़ाइल /etc/syslog.conf पर पर नज़र जो वह जगह है जहाँ समनुरूपण को डिफ़ॉल्ट रूप से परिभाषित किया गया है और यह भी, मैं के रूप में चाहते हैं ओएस एक्स 10.5.x पर इसे देखें)।

5

मैक ओएस एक्स a superset of syslog's functionality लागू करता है। सभी syslog वहाँ है, लेकिन एएसएल के हिस्से के रूप में।

कंसोल, जिसका जवाब मैथ्यू शिनकल द्वारा उनके उत्तर में किया गया है, एएसएल पर जीयूआई है। यह आपको साइडबार में सूचीबद्ध प्रश्नों के अनुसार डेटाबेस में मौजूद किसी भी संदेश दिखाएगा। डिफ़ॉल्ट रूप से दो प्रश्न हैं; एक केवल कंसोल सुविधा के साथ भेजे गए संदेश दिखाता है (जैसा कि NSLog द्वारा अन्य चीजों के साथ उपयोग किया जाता है), जबकि अन्य सभी लॉग संदेश दिखाता है। सभी संदेश क्वेरी जांचें; आपको शायद आपका संदेश मिल जाएगा।

कि "सब" तारांकन के साथ आता है। आप /etc/asl.conf में देखो, तो आप इस लाइन देखेंगे:

# save everything from emergency to notice 
? [<= Level notice] store 

सौभाग्य से, आपके मामले में, संदेश इस चेक, outranks चेतावनी के बाद से पारित करेंगे नोटिस (की तुलना में कम संख्या है)।

0

प्रोग्राम में कहीं भी openlog पर कॉल के लिए जांचें। openlog पर कॉल करने के बाद, syslog अपने आउटपुट को डिफ़ॉल्ट स्थान की बजाय उस लॉग फ़ाइल में सहेज देगा।

58

/var/log/system.log

आप आसानी से उपयोग कर रहा tail -f /var/log/system.log

भी देखें "लकड़हारा" यह निगरानी कर सकते हैं (man logger) और "syslog" (man syslog)।

3

शायद यह ध्यान रखना दिलचस्प है: ऐप्पल अतीत में वास्तविक syslogd का उपयोग कर रहा था लेकिन इस बीच यह सब एएसएल (ऐप्पल सिस्टम लॉग) पर स्विच हो गया है। syslog कमांड अभी भी उपलब्ध है, लेकिन यह केवल इस लॉग को एक्सेस करेगा। यदि आप कॉन्फ़िगर की गई सभी लॉग फ़ाइलों में एएसएल के सभी लॉग संदेशों तक पहुंचना चाहते हैं, तो log कमांड का उपयोग करें।

उदा। शो के बाद सभी लॉग संदेशों पिछले दो दिनों (धैर्य रखें, कुछ समय लग सकता है) के भीतर सफारी द्वारा उत्पादित:

log show --predicate 'process == "Safari"' --last 2d 

सभी कार्यों आप प्रदर्शन कर सकते हैं, सभी मापदंडों यह जानता है और क्या आप विशेषताओं के लिए man log देखें के लिए फ़िल्टर कर सकते हैं।

+0

यह आधुनिक, सही उत्तर है। –