mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
68f46a815f
- Avoided truncating all files if no ENV['LOGS'] specified - Updated task to accept LOGS=all for truncating all files from log/ i.e. log/*log - If no LOGS specified will truncates standard environment log files i.e. 'development,test,production' - CHANGELOG & guide update added - bin/setup test cases fixed
36 lines
955 B
Ruby
36 lines
955 B
Ruby
namespace :log do
|
|
|
|
##
|
|
# Truncates all/specified log files
|
|
# ENV['LOGS']
|
|
# - defaults to standard environment log files i.e. 'development,test,production'
|
|
# - ENV['LOGS']=all truncates all files i.e. log/*.log
|
|
# - ENV['LOGS']='test,development' truncates only specified files
|
|
desc "Truncates all/specified *.log files in log/ to zero bytes (specify which logs with LOGS=test,development)"
|
|
task :clear do
|
|
log_files.each do |file|
|
|
clear_log_file(file)
|
|
end
|
|
end
|
|
|
|
def log_files
|
|
if ENV['LOGS'] == 'all'
|
|
FileList["log/*.log"]
|
|
elsif ENV['LOGS']
|
|
log_files_to_truncate(ENV['LOGS'])
|
|
else
|
|
log_files_to_truncate("development,test,production")
|
|
end
|
|
end
|
|
|
|
def log_files_to_truncate(envs)
|
|
envs.split(',')
|
|
.map { |file| "log/#{file.strip}.log" }
|
|
.select { |file| File.exist?(file) }
|
|
end
|
|
|
|
def clear_log_file(file)
|
|
f = File.open(file, "w")
|
|
f.close
|
|
end
|
|
end
|