दिलचस्प पोस्ट
पीडीओ तैयार बयान से कच्चे एसक्यूएल क्वेरी स्ट्रिंग प्राप्त करना एक सहयोगी वातावरण में इकाई फ़्रेमवर्क में माइग्रेशन चमकदार एप में एक जावास्क्रिप्ट फ़ाइल शामिल करें मैं पायथन में एनएएन के लिए कैसे जांच सकता हूं? एएसपी.नेट एमवीसी 3: डायनामिक / एजेएक्स सामग्री के विरोधाभासी क्लाइंट साइड सत्यापन के लिए आवश्यक कदम java.util.zip.ZipException: ज़िप फ़ाइल को खोलने में त्रुटि ASP.net एमवीसी वापस JSONP पायथन पीआईपी में विंडोज 7 पर 64-बिट इंस्टॉलेशन के लिए एमएस विज़ुअल स्टूडियो 2010 एक्सप्रेस के लिए पथ के साथ समस्याएं हैं गोलोंग गोरटिनेन्स में अलग तरह से बंद क्यों करता है? किसी देश के लिए सही ज़ूम स्तर सेट करने के लिए Google मानचित्र एपीआई कैसे प्राप्त करें? मैं एक asp.net MVC कार्रवाई में रेफरर यूआरएल कैसे प्राप्त करूं? सी # में वर्तमान निष्पादन योग्य का नाम कैसे प्राप्त करूं? strstr नहीं कामकाज मनमाने मनमानी के कार्य के साथ `नॉट` कैसे लिखाना है? एक स्टोरीबोर्ड की बजाय निबेट में प्रोटोटाइप सेल

कंसोल में SQL लॉगिंग को अक्षम करें

जब मैं कंसोल में कमांड निष्पादित कर रहा हूं, तो क्या SQL क्वेरी लॉगिंग निष्क्रिय करने का कोई तरीका है? आदर्श रूप से, यह अच्छा होगा यदि मैं इसे अक्षम कर सकता हूं और इसे कंसोल में कमांड के साथ पुनः सक्षम कर सकता हूं।

मैं कुछ डिबग करने की कोशिश कर रहा हूं और कुछ संबंधित डेटा को प्रिंट करने के लिए "puts" का उपयोग कर रहा हूं। हालांकि, एसक्यूएल क्वेरी आउटपुट इसे पढ़ना कठिन बना रहा है


संपादित करें: मुझे एक और हल मिला, चूंकि लकड़हारा को सेट करने के बाद कभी-कभी कोई त्रुटि उत्पन्न हुई, अगर मेरे कोड के अलावा अन्य किसी को लकड़हारा कॉल करने की कोशिश की

लॉजर को nil के रूप में सेट करने के बजाय आप लॉगर का स्तर 1 सेट कर सकते हैं।

 ActiveRecord::Base.logger.level = 1 # or Logger::INFO 

Solutions Collecting From Web of "कंसोल में SQL लॉगिंग को अक्षम करें"

इसे बंद करने के लिए:

 old_logger = ActiveRecord::Base.logger ActiveRecord::Base.logger = nil 

इसे वापस चालू करने के लिए:

 ActiveRecord::Base.logger = old_logger 

यहां एक भिन्नता है जो मुझे कुछ क्लीनर पर विचार करती है, जो अभी भी एआर से संभावित अन्य लॉगिंग की अनुमति देता है Config / environment / development.rb में:

 config.after_initialize do ActiveRecord::Base.logger = Rails.logger.clone ActiveRecord::Base.logger.level = Logger::INFO end 

यह कंसोल के लिए एक उपयुक्त समाधान नहीं हो सकता है, लेकिन रेल इस समस्या के लिए एक विधि है: लकड़हारा # मौन

 ActiveRecord::Base.logger.silence do # the stuff you want to be silenced end 

अगर कोई वास्तव में SQL कथन लॉगिंग (लॉगिंग स्तर को बदलने के बिना, और अपने एआर मॉडलों से प्रवेश रखते हुए) को बाहर करना चाहता है:

लॉग को लिखने वाली रेखा ( lib/active_record/log_subscriber.rb:50 रेल में, वैसे भी) lib/active_record/log_subscriber.rb:50 में debug करने के लिए कॉल है।

उस डीबग विधि को ActiveSupport::LogSubscriber द्वारा परिभाषित किया गया है।

तो हम इस तरह से इसे ओवरराइट करके लॉगिंग को बाहर कर सकते हैं:

 module ActiveSupport class LogSubscriber def debug(*args, &block) end end end 

रेलवे 4 के लिए आप निम्न में एक पर्यावरण फ़ाइल डाल सकते हैं:

 # /config/environments/development.rb config.active_record.logger = nil 

रेल में 3.2 मैं कॉन्फिग / पर्यावरण / विकास में इस तरह कुछ कर रहा हूँ। आरबी:

 module MyApp class Application < Rails::Application console do ActiveRecord::Base.logger = Logger.new("#{Rails.root}/log/development.log") end end end 

मैं इसका इस्तेमाल करता हूं: config.log_level = :info edit-in config/environments/performance.rb

मेरे लिए महान काम करना, SQL आउटपुट को खारिज करना, और केवल रेंडरिंग और महत्वपूर्ण जानकारी दिखाएं