यदि आप लॉगिंग एप्लिकेशन पर स्रोत को नियंत्रित करते हैं तो आप एक चाल का उपयोग कर सकते हैं, जो कि syslog.conf की बजाय ऐप में लॉग स्तर को मास्क करना है। मैंने इस साल पहले एक ऐप के साथ किया था जिसने बड़ी, विशाल, बड़ी संख्या में डीबग लॉग उत्पन्न किए थे। उत्पादन कोड से कॉल को हटाने के बजाय, हमने बस मुखौटा किया ताकि डिबग स्तर कॉल कभी डिमन को नहीं भेजा गया हो। मुझे वास्तव में कोड मिला, यह पर्ल है लेकिन यह सेटलॉगस्क (3) कॉल के लिए सिर्फ एक मोर्चा है।
use Sys::Syslog;
# Start system logging
# setlogmask controls what levels we're going to let get through. If we mask
# them off here, then the syslog daemon doesn't need to be concerned by them
# 1 = emerg
# 2 = alert
# 4 = crit
# 8 = err
# 16 = warning
# 32 = notice
# 64 = info
# 128 = debug
Sys::Syslog::setlogsock('unix');
openlog($myname,'pid,cons,nowait','mail');
setlogmask(127); # allow everything but debug
#setlogmask(255); # everything
syslog('debug',"syslog opened");
सुनिश्चित नहीं हैं कि मैं क्यों बिटमास्क के बजाय दशमलव ... कंधे उचकाने की क्रिया के लिए इस्तेमाल किया
rsyslog भी है। पता नहीं है कि यह तेज़ है, लेकिन यह कोशिश करने लायक हो सकता है। –