2012-05-29 13 views
7

मैं डेबियन सर्वर पर कुछ रेल 3.0 साइट चला रहा हूं। वर्तमान में सभी लॉग (प्रत्येक साइट के लिए RAILS_ROOT) RAILS_ROOT/लॉग/production.log में जानेरेल 3.0 में rsyslogd का उपयोग

मैं इतना है कि सभी प्रवेश rsyslog के माध्यम से चला जाता है और में रखा गया है इसे बदलने के लिए, चाहते हैं:

/var/log/rails/site1.log 
/var/log/rails/site2.log 
etc. 

और भी इन लॉगों को हर दिन ऑटो-घुमाए जाने के लिए।

यह कैसे किया जाता है?

/कार्स्टन

उत्तर

14

अतीत में मैं इस

के लिए syslog-logger मणि का इस्तेमाल किया है आप एक प्रारंभकर्ता में सेट कर सकते हैं:

config.logger = Logger::Syslog.new("site1", Syslog::LOG_LOCAL5) 

हाल माणिक संस्करणों में, वहाँ भी syslog/logger में है मानक पुस्तकालय - उपयोग काफी समान है।

डिफ़ॉल्ट टेक्स्ट फ़ाइल की बजाय syslog पर लॉगिंग शुरू करने के लिए। आगे क्या होता है एक समनुरूपण को बात है - आप rsyslog कि नियमों को परिभाषित जहां अपने डेटा चला जाता है बनाने की जरूरत

कुछ

सरल संभव बात होगी

तरह
!site1 /var/log/site1.log 

कौन सा प्रोग्राम का नाम "site1" के साथ सब कुछ का निर्देशन (लॉगर :: Syslog के लिए पहला तर्क)।

आप बहुत कुछ कर सकते हैं, उदाहरण के लिए आप लॉग संदेश को केंद्रीय लॉगिंग सर्वर पर अग्रेषित कर सकते हैं जो उन्हें सभी को एक फ़ाइल में जोड़ता है ताकि आपके प्रत्येक ऐप उदाहरणों के लिए एक लॉग फ़ाइल में Iook न हो ।

लॉग रोटेशन के लिए मैं लॉग्रोटेट का उपयोग करता हूं - मुझे विश्वास है कि rsyslog वास्तव में आंतरिक रूप से उस तरह की सामग्री को संभाल सकता है लेकिन मुझे विवरण नहीं पता है।

+0

इसलिए खेद है कि मैंने अभी तक इस पर टिप्पणी नहीं की है - यह नहीं देखा था कि एक जवाब था। मैं अगले हफ्ते इसे आजमाउंगा - धन्यवाद! –

+0

Syslog :: LOG_LOCAL5 - क्या यहां कोई टाइपो नहीं है? –

+0

बस एक बंद याद आ रही है)। इसके अलावा उत्पादन एप की कॉन्फ़िगरेशन फ़ाइल से सीधे आया था। –

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