पर रीडायरेक्ट करें मैं डेमन्स मणि का उपयोग करके रुबी में एक डिमन बनाने पर काम कर रहा हूं। मैं डेमॉन से लॉग फ़ाइल में आउटपुट जोड़ना चाहता हूं। मैं सोच रहा हूं कि puts
को कंसोल से लॉग फ़ाइल में रीडायरेक्ट करने का सबसे आसान तरीका क्या है।"put" कमांड आउटपुट को लॉग फ़ाइल
उत्तर
मैं गहरे लाल रंग का लकड़हारा उपयोग करने के लिए, कहते हैं की तुलना में बेहतर है की सलाह देते हैं, तो आप एकाधिक लॉग स्तरों है कि आप पर/बंद कर सकते हैं हो सकता है: डिबग, चेतावनी दी है, जानकारी, त्रुटि, आदि
logger = Logger.new(STDOUT)
logger = Logger.new("/var/log/my-daemon.log")
मैं रूबी सेवाओं का प्रबंधन करने RUNIT पैकेज का उपयोग, यह इच्छा से svlogd है लकड़हारा प्रक्रिया के लिए डेमॉन आउटपुट फ़ाइल लॉग इन करने के लिए, यहाँ चलाया जाता है स्क्रिप्ट अनुप्रेषित:
#!/bin/sh
set -e
LOG=/var/log/my-daemon
test -d "$LOG" || mkdir -p -m2750 "$LOG" && chown nobody:adm "$LOG"
exec chpst -unobody svlogd -tt "$LOG"
यह वास्तव में प्रश्न का उत्तर नहीं देता है। क्या होगा यदि आप यह नियंत्रित नहीं कर सकते कि _puts_ कौन कर रहा है और आप उन चीज़ों को कैप्चर करना चाहते हैं जो सामान्य रूप से STDOUT को लिखते हैं और उन्हें फ़ाइल में लिखते हैं? – silvamerica
पुनर्स्थापित करने के लिए
$stdout = File.new('/tmp/output', 'w')
का प्रयास करें:
$stdout = STDOUT
दोनों करेगा यह मेरे लिए '$ stdout.sync = true' के बिना काम नहीं करेगा। –
तुम दोनों STDERR और STDOUT पर कब्जा करने की जरूरत है और प्रवेश का सहारा नहीं करना चाहते हैं, तो निम्न this post से अनुकूलित एक सरल उपाय है:
$stdout.reopen("my.log", "w")
$stdout.sync = true
$stderr.reopen($stdout)
धन्यवाद, जिसने [इस] के साथ संयोजन में शक्तिशाली जुर्माना लगाया (http://stackoverflow.com/questions/1993071/how-to-controller-start-kill-a-background-process-server-app-in-ruby) ! – TheDeadSerious
'.sync' महत्वपूर्ण है। –
क्या होगा यदि आप अभी भी टर्मिनल पर जाने के साथ-साथ फ़ाइल लॉग इन करना चाहते हैं? जैसे व्यवहार 'रूबी myscript.rb | tee my.log' – wim
या आप puts
कमांड को फिर से परिभाषित कर सकते हैं? केवल एक एकल फाइल/कक्षा में शायद काम करता है
def puts(message)
#write message to file
end
- 1. आउटपुट MySQL स्रोत लॉग फ़ाइल
- 2. Hbase put shell कमांड
- 3. डॉस कमांड फ़ाइल ट्रंकेट्स आउटपुट
- 4. कमांड लाइन प्रिंट फ़ाइल नाम आउटपुट फ़ाइल
- 5. विंडबग: टेक्स्ट फ़ाइल में कमांड आउटपुट
- 6. लॉग आईपीथन आउटपुट?
- 7. PHP निष्पादन कमांड और लॉग आउटपुट बिना प्रतीक्षा किए
- 8. लॉगिंग आउटपुट लॉग 4j
- 9. 'खोज' कमांड के आउटपुट को 'vim'
- 10. पर्यवेक्षक लॉग मेरे आउटपुट को नहीं दिखाते
- 11. विंडोज कमांड प्रॉम्प्ट फ़ाइल को
- 12. लॉग 4नेट xml आउटपुट
- 13. php: कमांड आउटपुट
- 14. कस्टम लॉग प्रारूप आउटपुट
- 15. लूप कमांड का आउटपुट
- 16. बैच फ़ाइल का आउटपुट आउटपुट फ़ाइल लॉग इन करने के लिए
- 17. CouchDB PUT
- 18. वीएस -2010: आउटपुट में न्यूनतम बिल्ड लॉग और लॉग फ़ाइल में विस्तृत लॉग
- 19. विम कमांड लॉग
- 20. एक ही लॉग-फ़ाइल
- 21. साफ़ हेरोकू लॉग (कमांड)
- 22. लॉग फ़ाइल को गतिशील रूप से लॉग फ़ाइल
- 23. साफ़ गिट लॉग फ़ाइल
- 24. सिस्टम कमांड के आउटपुट को वैरिएबल
- 25. टाइम कमांड के आउटपुट को कैसे समझें?
- 26. टीमसिटी कस्टम स्क्रिप्ट लॉग आउटपुट
- 27. nohup आउटपुट फ़ाइल
- 28. एक MSI लॉग फ़ाइल
- 29. जावा -जर त्रुटियों को टेक्स्ट/लॉग फ़ाइल में कैसे आउटपुट करें?
- 30. HTTP PUT
उपयोग इस 'लकड़हारा || = Logger.new (" | टी # {settings.root} /log/migration_script_logger.log "," मासिक ")', इस – vs4vijay