class Rails::Pretty::Logger::PrettyLogger
Public Class Methods
file_size(log_file)
click to toggle source
# File lib/rails/pretty/logger.rb, line 20 def self.file_size(log_file) File.size?("#{log_file}").to_f / 2**20 end
get_hourly_log_file_list()
click to toggle source
# File lib/rails/pretty/logger.rb, line 29 def self.get_hourly_log_file_list log_files = Dir["#{Rails.root}/log/hourly/**/*.*"].sort self.logs_atr(log_files) end
get_log_file_list()
click to toggle source
# File lib/rails/pretty/logger.rb, line 24 def self.get_log_file_list log_files = Dir["#{File.join(Rails.root, 'log')}" + "/**.*"] self.logs_atr(log_files) end
highlight(log)
click to toggle source
# File lib/rails/pretty/logger.rb, line 16 def self.highlight(log) self.logger.tagged('HIGHLIGHT') { logger.info log } end
logger()
click to toggle source
# File lib/rails/pretty/logger.rb, line 12 def self.logger Rails.logger end
logs_atr(log_files)
click to toggle source
# File lib/rails/pretty/logger.rb, line 34 def self.logs_atr(log_files) log = {} log_files.each_with_index do |log_file,index| log[index] = {} log[index][:file_name] = log_file log[index][:file_size] = self.file_size(log_file).round(4) end log end
new(params)
click to toggle source
# File lib/rails/pretty/logger.rb, line 7 def initialize(params) @log_file = params[:log_file] @filter_params = params end
Public Instance Methods
clear_logs()
click to toggle source
# File lib/rails/pretty/logger.rb, line 44 def clear_logs open(@log_file, File::TRUNC) {} end
end_date()
click to toggle source
# File lib/rails/pretty/logger.rb, line 52 def end_date @filter_params.dig(:date_range, :end) || Time.now.strftime("%Y-%m-%d") end
filter_logs_with_date(file)
click to toggle source
# File lib/rails/pretty/logger.rb, line 56 def filter_logs_with_date(file) arr = [] start = false IO.foreach(file) do |line| if get_date_from_log_line(line) start = true arr.push(line) elsif start && !(line_include_date?(line)) arr.push(line) else start = false end end return arr end
get_date_from_log_line(line)
click to toggle source
# File lib/rails/pretty/logger.rb, line 89 def get_date_from_log_line(line) params = @filter_params[:date_range] if line_include_date?(line) date_string_index = line.index("at ") string_date = line[date_string_index .. date_string_index + 13] date = string_date.to_date.strftime("%Y-%m-%d") start_date = @filter_params.dig(:date_range, :start) end_date = @filter_params.dig(:date_range, :end) if start_date.present? && end_date.present? date.between?(start_date, end_date) else date.between?(Time.now.strftime("%Y-%m-%d"), Time.now.strftime("%Y-%m-%d")) end end end
get_logs_from_file(file)
click to toggle source
# File lib/rails/pretty/logger.rb, line 81 def get_logs_from_file(file) if @filter_params[:log_file].include?("test") || @filter_params[:log_file].include?("hourly") get_test_logs(file) else filter_logs_with_date(file) end end
get_test_logs(file)
click to toggle source
# File lib/rails/pretty/logger.rb, line 73 def get_test_logs(file) arr = [] IO.foreach(file) do |line| arr.push(line) end return arr end
line_include_date?(line)
click to toggle source
# File lib/rails/pretty/logger.rb, line 105 def line_include_date?(line) line.include?("Started") end
log_data()
click to toggle source
# File lib/rails/pretty/logger.rb, line 121 def log_data error = validate_date divider = set_divider_value logs = get_logs_from_file(@log_file) logs_count = (logs.count.to_f / divider).ceil paginated_logs = logs[ @filter_params[:page].to_i * divider .. (@filter_params[:page].to_i * divider) + divider ] data = {} data[:logs_count] = logs_count data[:paginated_logs] = paginated_logs data[:error] = error return data end
set_divider_value()
click to toggle source
# File lib/rails/pretty/logger.rb, line 135 def set_divider_value if @filter_params[:date_range].blank? 100 elsif @filter_params[:date_range][:divider].blank? 100 else @filter_params[:date_range][:divider].to_i end end
start_date()
click to toggle source
# File lib/rails/pretty/logger.rb, line 48 def start_date @filter_params.dig(:date_range, :start) || Time.now.strftime("%Y-%m-%d") end
validate_date()
click to toggle source
# File lib/rails/pretty/logger.rb, line 109 def validate_date start_date = @filter_params.dig(:date_range, :start) end_date = @filter_params.dig(:date_range, :end) if (start_date.present? && end_date.present?) if (start_date > end_date) "End Date should not be less than Start Date." end else "Start and End Date must be given." end end