मैं रेल पर रूबी में test.log और development.log पर स्वचालित सफाई कैसे सेट कर सकता हूं?रेल पर रूबी में लॉग रोटेशन/समाशोधन
क्या सर्वर प्रारंभ और परीक्षण चलाने पर स्वचालित रूप से dev और test log को हटाने की कोई सेटिंग है?
मैं रेल पर रूबी में test.log और development.log पर स्वचालित सफाई कैसे सेट कर सकता हूं?रेल पर रूबी में लॉग रोटेशन/समाशोधन
क्या सर्वर प्रारंभ और परीक्षण चलाने पर स्वचालित रूप से dev और test log को हटाने की कोई सेटिंग है?
ruby logger हाथ पर है यहाँ आप मदद करने के लिए है - और यह के लिए डिफ़ॉल्ट विकल्प हैं रोटेशन।
यहाँ मैं क्या करना है:
environment.rb
में हम अपने ही लकड़हारा
new_logger = Logger.new(File.join(RAILS_ROOT, "log", "new_logger_#{RAILS_ENV}.log"), 'daily')
new_logger.formatter = Logger::Formatter.new
यह हमारे अपने वालों बनाता परिभाषित ... एक फ़ॉर्मेटर साथ पर्यावरण प्रति एक साथ (ताकि आप मिल टाइम स्टांप आदि), , और दैनिक घूर्णन।
फिर प्रारंभ ब्लॉक में हम इस लकड़हारा
Rails::Initializer.run do |config|
config.active_record.logger = new_logger
config.action_controller.logger = new_logger
#snip
end
उपयोग करने के लिए रेल पूछना आप स्पष्ट रूप से भी यहां बिजली देख सकते हैं active_record
के लिए और action_controller
के लिए अलग वालों के लिए - कभी कभी बहुत उपयोगी!
इस ट्यूटोरियल में यहां देखें: Rotating Rails Log Files, मुझे नहीं पता कि यह आपकी समस्या का समाधान करता है, क्योंकि मैं अपनी लॉग फ़ाइलों के बारे में परवाह नहीं करता हूं।
हैप्पी मैं आपकी मदद कर रहा हूं!
दुर्भाग्य से लॉग्रोटेट केवल यूनिक्स-जैसी प्रणालियों के लिए उपलब्ध है –
rake log:clear
एक रेक कार्य है जो log/*.log
से शून्य बाइट्स तक मेल खाने वाली सभी फ़ाइलों को छोटा करता है। आप इसे अपने सर्वर में कॉल कर सकते हैं और परीक्षण कार्यों को चला सकते हैं।
सभी स्क्रिप्ट/सर्वर है, सुनिश्चित करें कि आप की तरह कुछ करने के लिए इसे संशोधित कर सकता है im एक गहरे लाल रंग का स्क्रिप्ट है:
#!/usr/bin/env ruby
require 'fileutils'
FileUtils.rm File.join(File.dirname(__FILE__), log, *.log)
require File.dirname(__FILE__) + '/../config/boot'
require 'commands/server'
उत्पादन वातावरण में, आपको वास्तव में SyslogLogger (http://rails-analyzer.rubyforge.org/tools/files/lib/analyzer_tools/syslog_logger_rb.html) की आवश्यकता है, यह आपको syslogd को लिखने देता है, जो creansup, वितरित सेटअप में आपकी फ़ाइलों को घुमाता है।
प्रयोग करने के बाद, मैंने पाया कि रेल प्रारंभकर्ताओं को सही बिंदु पर लोड किया जाता है जहां आप मानक रूबी File
कक्षा का उपयोग कर फ़ाइल को छोटा कर सकते हैं।
if MyRailsApp::Application.config.truncate_logs_on_server_start
# Making an assumption here that we're logging to a file...
File.open("log/#{ENV["RAILS_ENV"]}.log", "w") do |log_file|
log_file.puts("Initializer truncate_logs_on_server_start reset the log file")
log_file.puts
end
end
तुम बस तो application.rb और विभिन्न वातावरण में MyRailsApp::Application.config.truncate_logs_on_server_start
निर्धारित करने की आवश्यकता: मैं config/initializers/truncate_logs_on_server_start.rbमें यह है।
"क्लीनअप" से आपका क्या मतलब है? – cakeforcerberus