2013-10-02 13 views
6

मैं एप्लिकेशन से अलग लॉग फ़ाइलों में विभिन्न प्रकार की प्रविष्टियों को लिखने की कोशिश कर रहा हूं। जिस कारण से मैं पता लगाने की कोशिश कर रहा हूं, सभी प्रविष्टियां सभी लॉग फ़ाइलों में दिखाई देती हैं। मुझ से ऐसी कौनसी गलती हो जाएगी ?अलग लॉग फ़ाइलों में लेखन

मैं /tmp/log/critical.log में जाने के लिए केवल महत्वपूर्ण प्रविष्टियां चाहता हूं और /tmp/log/debug.log फ़ाइल में जाने के लिए प्रविष्टियों को डीबग करना चाहता हूं, जबकि सभी प्रविष्टियां /tmp/log/all.log लॉग में जा सकती हैं फ़ाइल।

बाद /etc/rsyslog.conf फ़ाइल

local0.*            /tmp/log/all.log 
local0.alert           /tmp/log/alert.log 
local0.crit            /tmp/log/critical.log 
local0.debug           /tmp/log/debug.log 
local0.emerg           /tmp/log/emergency.log 
local0.err            /tmp/log/error.log 
local0.info            /tmp/log/info.log 
local0.notice           /tmp/log/notice.log 
local0.warning           /tmp/log/warning.log 

मेरे नमूना ग प्रोग्राम लिखने syslog प्रविष्टियों में प्रविष्टियों रहे हैं ...

#include<syslog.h> 

main() 
{ 
    openlog("myapp",LOG_CONS|LOG_PID|LOG_NDELAY,LOG_LOCAL0); 

    syslog(LOG_EMERG|LOG_LOCAL0,"Emergency",getuid()); 
    syslog(LOG_ALERT|LOG_LOCAL0,"Alert",getuid()); 
    syslog(LOG_CRIT|LOG_LOCAL0,"Critical",getuid()); 
    syslog(LOG_ERR|LOG_LOCAL0,"Error",getuid()); 
    syslog(LOG_WARNING|LOG_LOCAL0,"Warning",getuid()); 
    syslog(LOG_NOTICE|LOG_LOCAL0,"Notice",getuid()); 
    syslog(LOG_INFO|LOG_LOCAL0,"Information",getuid()); 
    syslog(LOG_DEBUG|LOG_LOCAL0,"Debug",getuid()); 

    closelog(); 
} 

उत्तर

3

यहाँ मुख्य बिंदु है (आप शायद है के रूप में अनुमान लगाया गया है) डिफ़ॉल्ट आपके द्वारा चुने गए स्तर और उसके नीचे वाले लोगों पर लॉग इन करना है। आप चयनकर्ता तुलना को संशोधित करके syslog कॉन्फ़िगरेशन फ़ाइल में इसे बदल सकते हैं। डिफ़ॉल्ट अगर निर्दिष्ट नहीं किया >= है, तो आप = हैं:

local0.*             /tmp/log/all.log 
local0.=alert           /tmp/log/alert.log 
local0.=crit            /tmp/log/critical.log 
local0.=debug           /tmp/log/debug.log 
local0.=emerg           /tmp/log/emergency.log 
local0.=err            /tmp/log/error.log 
local0.=info            /tmp/log/info.log 
local0.=notice           /tmp/log/notice.log 
local0.=warning           /tmp/log/warning.log 

साथ ही <, >, <=, >=, आप तुलना ! का उपयोग कर नकारना कर सकते हैं।

+1

हाय, क्या आप कॉन्फ़िगरेशन फ़ाइल साझा कर सकते हैं? – ams

+0

क्या कॉन्फ़िगरेशन फ़ाइल? आपके syslog कॉन्फ़िगरेशन में डालने वाली प्रविष्टियां हैं। मेरे पास /etc/rsyslog.d/90-local.conf में मेरा है – ralight

संबंधित मुद्दे