Class: Solidstats::LogSizeMonitorService
- Inherits:
-
Object
- Object
- Solidstats::LogSizeMonitorService
- Defined in:
- app/services/solidstats/log_size_monitor_service.rb
Constant Summary collapse
- WARNING_THRESHOLD =
In megabytes
25- DANGER_THRESHOLD =
In megabytes
50
Instance Method Summary collapse
Instance Method Details
#collect_data ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'app/services/solidstats/log_size_monitor_service.rb', line 6 def collect_data log_files = scan_log_directory total_size_bytes = log_files.sum { |file| file[:size_bytes] } # Create aggregated data { log_dir_path: log_directory, total_size_bytes: total_size_bytes, total_size_mb: bytes_to_mb(total_size_bytes), status: calculate_status(total_size_bytes), logs_count: log_files.size, log_files: log_files, created_at: Time.now.iso8601 } end |
#truncate_log(filename = nil) ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'app/services/solidstats/log_size_monitor_service.rb', line 22 def truncate_log(filename = nil) begin if filename.present? # Truncate specific log file # Ensure filename has .log extension filename = "#{filename}.log" unless filename.end_with?(".log") file_path = File.join(log_directory, filename) if File.exist?(file_path) File.open(file_path, "w") { |f| f.truncate(0) } { success: true, message: "Log file '#{filename}' truncated successfully" } else { success: false, message: "Log file '#{filename}' not found" } end else # Truncate all log files scan_log_directory.each do |log_file| File.open(log_file[:path], "w") { |f| f.truncate(0) } end { success: true, message: "All log files truncated successfully" } end rescue => e { success: false, message: "Failed to truncate log file: #{e.message}" } end end |