คุณจะซ่อนเอาต์พุตฐานข้อมูลในคอนโซล Rails ได้อย่างไร


103

ใน Rails เวอร์ชันใหม่กว่าฉันเดาว่าตั้งแต่ 3 ขึ้นไปคิวรีฐานข้อมูลจะส่งออกไปยังคอนโซล สิ่งนี้มีประโยชน์เกือบตลอดเวลา แต่คุณจะซ่อนมันได้อย่างไรเมื่อคุณไม่ต้องการเห็น

คำตอบ:


178

วิธีที่ดีกว่าคือการพิมพ์ลงในคอนโซล:

ActiveRecord::Base.logger.level = 1 

เนื่องจากป้องกันปัญหาในการพยายามใช้ตัวชี้ไปยังตัวบันทึกที่ตั้งค่าเป็นศูนย์ (ที่มา: ปิดการใช้งานคอนโซลการเข้าสู่ระบบ Rails SQL )

เพื่อเปิดอีกครั้ง

ActiveRecord::Base.logger.level = 0

31
ขอบคุณ. และเพื่อเปิดอีกActiveRecord::Base.logger.level = 0ครั้ง
thebenedict

มีความคิดอย่างไรกับ Mongoid?
Jesse Farmer


9

คำตอบสั้น ๆ ... ในไฟล์ development.rb เปลี่ยนหรือเพิ่มค่าconfig.log_levelเพื่อให้มีบรรทัดเช่น

config.log_level = :info

1
ไม่ดูเหมือนว่าสิ่งนี้จะไม่ส่งผลกระทบใด ๆ กับสิ่งที่เกิดขึ้นในคอนโซล นอกจากนี้ฉันต้องการโซลูชันที่ไม่ต้องการให้ฉันเปลี่ยนไฟล์โครงการ
Roger Ertesvag

โอเคโซลูชันนี้ใช้ได้กับฉันกับ webrick แต่คุณอาจใช้เซิร์ฟเวอร์อื่นหรือทำงานในโหมดการผลิตหรือการทดสอบ?
madth3

3
ใช้สำหรับเปลี่ยนเนื้อหาของไฟล์บันทึก แต่คำถามเกี่ยวกับคอนโซลรางไม่ใช่ล็อกไฟล์
Roger Ertesvag

5

จากเพื่อนของฉัน:

your_query; nil

1
เพื่อปรับปรุงคุณภาพของโพสต์ของคุณโปรดระบุว่าโพสต์ของคุณจะแก้ปัญหาได้อย่างไร / ทำไม
Mick MacCallum

7
สิ่งนี้จะหยุดคอนโซลทับทิมของคุณจากการถ่ายโอนผลลัพธ์ของนิพจน์ไปยังคอนโซล แต่จะไม่หยุด ActiveRecord จากการถ่ายโอนข้อมูล sql ไปยังตัวบันทึกราง
eremzeit

1
สำหรับผู้แสดงความคิดเห็นก่อนหน้านี้: สิ่งนี้ตอบคำถามและเป็นคำตอบเดียวที่เหมาะกับฉันมีใครต้องการอะไรอีก
valk

3
ฉันไม่คิดว่าสิ่งนี้จะตอบคำถามได้เลย ตามที่ @eremzeit กล่าวไว้สิ่งนี้จะไม่หยุดการสืบค้น sql ทั้งหมดจากการถ่ายโอนข้อมูลไปยังคอนโซลของคุณ แต่จะหยุดการพิมพ์ค่าส่งคืนจากคำสั่งนั้นเท่านั้น ...
opsidao

1
ไม่ตอบคำถาม แต่มีประโยชน์สำหรับการไม่ให้ผลลัพธ์ซ้ำ
Rutger

4

ใน Rails 3.2 การตั้งค่า

config.logger.level = Logger::INFO

ทำงานได้ดีสำหรับฉันสำหรับการปิดเอาต์พุต SQL


สิ่งนี้ยังบันทึกเอาต์พุต SQL ไปยังล็อกไฟล์หรือไม่
Joshua Pinter

-2

ฉันเห็นว่าคุณมีคำตอบที่ต้องการแล้วแม้ว่าฉันต้องการจะแนะนำอัญมณี 'เนื้อหาที่เงียบสงบ' ให้กับคุณข้อมูลบันทึกส่วนใหญ่จะเป็นการรวบรวมและรวมเนื้อหาอัญมณีนี้จะลบสิ่งนั้นออกและยังคงแสดงผลการสืบค้นและพฤติกรรมของข้อมูล

มีความสุข


1
คำถามเกี่ยวกับเอาต์พุตไปยังคอนโซลไม่ใช่ล็อกไฟล์
Roger Ertesvag
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.