2010-11-05 11 views
11

मेरी .irbrc फ़ाइल में मुझे स्क्रिप्ट/कंसोल में ActiveRecords से पूछताछ करते समय SQL निष्पादित करने के लिए मुझे 'लॉगजर' की आवश्यकता होती है।स्क्रिप्ट/कंसोल में लॉगर को अक्षम कैसे करें

मेरा सवाल है, मैं अस्थायी रूप से लॉगर को बंद कर देता हूं, इसलिए यह केवल कुछ ActiveRecord क्वेरी के लिए SQL प्रदर्शित नहीं करता है?

उत्तर

14

स्क्रिप्ट/कंसोल यहाँ में प्रवेश मैं क्या उपयोग है टॉगल करने के लिए:

def show_log 
    change_log(STDOUT) 
end 

def hide_log 
    change_log(nil) 
end 

def change_log(stream, colorize=true) 
    ActiveRecord::Base.logger = ::Logger.new(stream) 
    ActiveRecord::Base.clear_all_connections! 
    ActiveRecord::Base.colorize_logging = colorize 
end 
+0

यह वही है जो मैं था के बाद, धन्यवाद! – Coderama

+6

कूल, मुझे यह पसंद है! हालांकि रेल 3 के लिए, आपको change_log विधि की अंतिम पंक्ति निकालना होगा। इसके अलावा, उस विधि के लिए एक शून्य लौटने से क्लीनर "टॉगल" आउटपुट होगा। – janechii

1

यदि आप वास्तव में अपने लोकहोस्ट पर विकास में चल रहे हैं तो आप अपनी कॉन्फ़िगरेशन निर्देशिका में development.rb पर्यावरण फ़ाइल में अपनी लॉगर फ़ाइल को समायोजित करके या अपने लॉगर फ़ाइल को समायोजित करके अपने लॉगर फ़ाइल को बंद कर सकते हैं।

+0

उत्तर के लिए धन्यवाद। लेकिन मैं स्क्रिप्ट/कंसोल में एक अस्थायी समाधान के बाद हूं। जैसे मैं स्क्रिप्ट/कंसोल में हूं और लॉगर की आवश्यकता से दूर काम कर रहा हूं, लेकिन फिर मैं लॉगर को केवल एक एआर क्वेरी के लिए एसक्यूएल प्रदर्शित करने से रोकना चाहता हूं जिसे मैं चलाने वाला हूं। मैं लॉगर को कैसे बंद कर दूंगा, और उसके बाद स्क्रिप्ट/कंसोल में इसे वापस चालू कर दूंगा? – Coderama

+0

हाँ, मैंने देखा कि मैंने इसे पोस्ट करने के बाद। मुझे नहीं पता कि कुछ एसक्यूएल लाइनों के लिए इसे कैसे करें :( – s84

+1

रेल ऐप में 'स्क्रिप्ट्स' फ़ोल्डर की जांच करें, मुझे लगता है कि आप 'कंसोल' उपयोग के लिए लॉगर को बंद कर सकते हैं। – s84

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