2012-04-29 5 views
9

पर जाएं, मेरे पास एक एप्लिकेशन myapp है जो लॉग फ़ाइलों को केवल से /var/log/myapp.log भेजना चाहिए। myapp सी ++ में लिखा गया है। निम्नलिखित नमूना कोड, केवल लॉग/var/log/syslog पर लॉग भेजता है। मेरा ओएस लिनक्स है - उबंटू 12.04 - विशिष्ट होना। मैंने यह भी पाया कि मेरी मशीन में syslog इंस्टॉल की तुलना में rsyslog है।syslog को कॉन्फ़िगर कैसे करें ताकि अनुप्रयोग लॉग एक विशिष्ट फ़ाइल

#include <stdio.h> 
#include <unistd.h> 
#include <syslog.h> 

int main(void) { 
    openlog("myapp", LOG_PID|LOG_CONS, LOG_USER); 
    syslog(LOG_INFO, "abc 10"); 
    closelog(); 
    return 0; 
} 

उत्तर

4

syslog के अनुसार (3) मैनपेज, openlog के लिए पहले पैरामीटर() लॉग संदेशों के लिए एक उपसर्ग, नहीं एक फ़ाइल नाम सेट करता है। आप अपने आउटपुट को ध्वजांकित करने के लिए LOG_LOCAL0 जैसी सुविधा का उपयोग कर सकते हैं और फिर configure syslogd using /etc/syslog.conf उन लॉग को अपनी इच्छा की फ़ाइल में भेजने के लिए उपयोग कर सकते हैं।

+1

syslog.conf को कैसे कॉन्फ़िगर करें ताकि मेरे एप्लिकेशन से लॉग संदेश किसी विशिष्ट फ़ाइल पर जाएं? एक साधारण फ़ाइल पर लिखना एक अच्छा समाधान नहीं है - इस लिंक को पढ़ें http://stackoverflow.com/questions/158457/logging-in-linux और http://stackoverflow.com/users/7740/richard – suresh

+0

द्वारा दिए गए उत्तर @ सुरेश आप प्रत्येक उत्तर के बाद 'शेयर' लिंक से लिंक स्थान की प्रतिलिपि बनाकर सीधे उत्तर के लिंक दे सकते हैं। इस तरह - http://stackoverflow.com/a/158493/598175 – deppfx