Module: LogCleaner

Defined in:
lib/log_cleaner.rb,
lib/log_cleaner/config.rb,
lib/log_cleaner/engine.rb,
lib/log_cleaner/logger.rb,
lib/log_cleaner/version.rb,
lib/log_cleaner/request_store.rb,
lib/log_cleaner/request_logger.rb,
lib/log_cleaner/request_middleware.rb,
lib/log_cleaner/active_record_logger.rb

Overview

LogCleaner::ActiveRecordLogger is a concern for ActiveRecord models that automatically logs validation errors after the model is validated.

Features:

  • Hooks into ActiveRecord’s after_validation callback.

  • Logs all validation errors with model name, attributes, and user context.

  • Uses LogCleaner.error to standardize log structure.

Example usage in a Rails model:

class User < ApplicationRecord
  include LogCleaner::ActiveRecordLogger
end

When a User model fails validation, a structured log is sent to LogCleaner:

LogCleaner.error(
  event: "model_validation_failed",
  model: "User",
  attributes: { name: "John", email: "invalid" },
  errors: { email: ["is invalid"] },
  user_id: 1
)

Defined Under Namespace

Modules: ActiveRecordLogger, RequestLogger, RequestStore Classes: Config, Engine, Logger, RequestMiddleware

Constant Summary collapse

VERSION =
"0.1.2"

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.configObject

Returns the value of attribute config.



37
38
39
# File 'lib/log_cleaner.rb', line 37

def config
  @config
end

Class Method Details

.configure {|config| ... } ⇒ Object

Configuration

Yields:



41
42
43
44
# File 'lib/log_cleaner.rb', line 41

def self.configure
  self.config ||= Config.new
  yield(config)
end

.debug(data) ⇒ Object



103
104
105
# File 'lib/log_cleaner/logger.rb', line 103

def self.debug(data)
  logger.debug(data)
end

.error(data) ⇒ Object



111
112
113
# File 'lib/log_cleaner/logger.rb', line 111

def self.error(data)
  logger.error(data)
end

.info(data) ⇒ Object

Convenience methods



99
100
101
# File 'lib/log_cleaner/logger.rb', line 99

def self.info(data)
  logger.info(data)
end

.loggerObject

Singleton logger instance



94
95
96
# File 'lib/log_cleaner/logger.rb', line 94

def self.logger
  @logger ||= Logger.new
end

.warn(data) ⇒ Object



107
108
109
# File 'lib/log_cleaner/logger.rb', line 107

def self.warn(data)
  logger.warn(data)
end