कोड
को भेजे गए संदेश के लिए
रेल 4 और नए के लिए, आप Logger broadcast का उपयोग कर सकते हैं।
तुम दोनों STDOUT और विकास मोड में रेक कार्यों के लिए फ़ाइल लॉगिंग प्राप्त करना चाहते हैं, तो आप config/environments/development.rb
इस कोड जोड़ सकते हैं:
if File.basename($0) == 'rake'
# http://stackoverflow.com/questions/2246141/puts-vs-logger-in-rails-rake-tasks
log_file = Rails.root.join("log", "#{Rails.env}.log")
Rails.logger = ActiveSupport::Logger.new(log_file)
Rails.logger.extend(ActiveSupport::Logger.broadcast(ActiveSupport::Logger.new(STDOUT)))
end
टेस्ट
यहाँ ऊपर परीक्षण करने के लिए एक छोटा सा रैक कार्य है कोड:
# lib/tasks/stdout_and_log.rake
namespace :stdout_and_log do
desc "Test if Rails.logger outputs to STDOUT and log file"
task :test => :environment do
puts "HELLO FROM PUTS"
Rails.logger.info "HELLO FROM LOGGER"
end
end
rake stdout_and_log:test
आउटपुट
चल रहा है
HELLO FROM PUTS
HELLO FROM LOGGER
जबकि
HELLO FROM LOGGER
log/development.log
में जोड़ा गया है।
रनिंग rake stdout_and_log:test RAILS_ENV=production
आउटपुट
HELLO FROM PUTS
जबकि
HELLO FROM LOGGER
log/production.log
में जोड़ा गया है।
स्रोत
2016-11-21 14:49:44
+1 मैं सिर्फ एक ही प्रश्न पूछने की योजना बना रहा था। –