কোড
রেল 4 এবং আরও নবীনদের জন্য আপনি লগার সম্প্রচার ব্যবহার করতে পারেন ।
আপনি যদি বিকাশ মোডে রেক টাস্কগুলির জন্য 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
।
Rails.logger = Logger.new(STDOUT)
?