Skip to content

Commit d079fc2

Browse files
committed
heaps more work
1 parent ffa2f97 commit d079fc2

36 files changed

Lines changed: 274 additions & 162 deletions

lib/log_struct/concerns/error_handling.rb

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@ def log_exception(error, source:, context: nil)
4040
# Create structured log entry
4141
exception_log = Log::Exception.from_exception(
4242
source,
43-
LogEvent::Error,
4443
error,
4544
context || {}
4645
)
Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
require_relative "multi_error_reporter"
1414

1515
module LogStruct
16-
class JSONFormatter < Logger::Formatter
16+
class Formatter < ::Logger::Formatter
1717
extend T::Sig
1818

1919
# Add current_tags method to support ActiveSupport::TaggedLogging
@@ -23,7 +23,7 @@ def current_tags
2323
end
2424

2525
# Add tagged method to support ActiveSupport::TaggedLogging
26-
sig { params(tags: T::Array[String], blk: T.proc.params(formatter: JSONFormatter).void).returns(T.untyped) }
26+
sig { params(tags: T::Array[String], blk: T.proc.params(formatter: Formatter).void).returns(T.untyped) }
2727
def tagged(*tags, &blk)
2828
new_tags = tags.flatten
2929
current_tags.concat(new_tags) if new_tags.any?
@@ -92,7 +92,7 @@ def process_values(arg, recursion_depth: 0)
9292
"[GLOBALID_ERROR]"
9393
end
9494
end
95-
when LogSource, LogEvent
95+
when Source, LogEvent
9696
arg.serialize
9797
when String
9898
scrub_string(arg)
@@ -119,8 +119,8 @@ def call(severity, time, progname, log_value)
119119
else
120120
# Create a Plain struct with the message and then serialize it
121121
plain = Log::Plain.new(
122-
msg: log_value.to_s,
123-
ts: time
122+
message: log_value.to_s,
123+
timestamp: time
124124
)
125125
plain.serialize
126126
end
@@ -133,7 +133,7 @@ def call(severity, time, progname, log_value)
133133
data[:evt] ||= "log"
134134
data[:ts] ||= time.iso8601(3)
135135
data[:lvl] = severity.downcase
136-
data[:progname] = progname if progname.present?
136+
data[:prog] = progname if progname.present?
137137

138138
generate_json(data)
139139
end

lib/log_struct/integrations/action_mailer/error_handling.rb

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,6 @@ def handle_error_notifications(error, notify, report, reraise)
8080
# Create an exception log for structured logging
8181
exception_data = Log::Exception.from_exception(
8282
Source::Mailer,
83-
LogEvent::Error,
8483
error,
8584
context
8685
)
@@ -102,7 +101,6 @@ def log_notification_event(error)
102101
# Create an error log data object
103102
exception_data = Log::Exception.from_exception(
104103
Source::Mailer,
105-
LogEvent::Error,
106104
error,
107105
{
108106
mailer: self.class,

lib/log_struct/integrations/action_mailer/event_logging.rb

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -24,20 +24,20 @@ module EventLogging
2424
# Log when an email is about to be delivered
2525
sig { void }
2626
def log_email_delivery
27-
log_mailer_event(LogStruct::LogEvent::Delivery)
27+
log_mailer_event(LogEvent::Delivery)
2828
end
2929

3030
# Log when an email is delivered
3131
sig { void }
3232
def log_email_delivered
33-
log_mailer_event(LogStruct::LogEvent::Delivered)
33+
log_mailer_event(LogEvent::Delivered)
3434
end
3535

3636
private
3737

3838
# Log a mailer event with the given event type
3939
sig do
40-
params(event_type: LogStruct::LogEvent,
40+
params(event_type: LogEvent,
4141
level: Symbol,
4242
additional_data: T::Hash[Symbol, T.untyped]).returns(T.untyped)
4343
end
@@ -62,21 +62,21 @@ def log_mailer_event(event_type, level = :info, additional_data = {})
6262
from = mailer_message&.from&.first
6363
subject = mailer_message&.subject
6464

65-
# Map Rails log level to LogStruct::LogLevel
65+
# Map Rails log level to LogLevel
6666
log_level = case level
6767
when :error, :fatal
68-
LogStruct::LogLevel::Error
68+
LogLevel::Error
6969
when :warn
70-
LogStruct::LogLevel::Warn
70+
LogLevel::Warn
7171
when :debug
72-
LogStruct::LogLevel::Debug
72+
LogLevel::Debug
7373
else
74-
LogStruct::LogLevel::Info
74+
LogLevel::Info
7575
end
7676

7777
# Create a structured log entry
78-
log_data = LogStruct::Log::Email.new(
79-
evt: event_type,
78+
log_data = Log::Email.new(
79+
event: event_type,
8080
lvl: log_level,
8181
to: to,
8282
from: from,

lib/log_struct/integrations/action_mailer/logger.rb

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ module Logger
1313
end
1414
def self.build_base_log_data(mailer, event_type)
1515
log_data = {
16-
src: "mailer",
17-
evt: event_type,
16+
source: "mailer",
17+
event: event_type,
1818
ts: Time.now.iso8601(3),
1919
message_id: extract_message_id(mailer),
2020
mailer_class: mailer.class.to_s,
@@ -45,10 +45,9 @@ def self.log_structured_error(mailer, error, message)
4545

4646
# Create an exception log with proper structured data
4747
exception_data = Log::Exception.from_exception(
48-
LogSource::Mailer,
49-
LogEvent::Error,
48+
Source::Mailer,
5049
error,
51-
log_data.merge(msg: message)
50+
log_data.merge(message: message)
5251
)
5352

5453
log_to_rails(exception_data, :error)

lib/log_struct/integrations/active_job/log_subscriber.rb

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,12 @@ module ActiveJob
1313
class LogSubscriber < ::ActiveJob::LogSubscriber
1414
def enqueue(event)
1515
job = event.payload[:job]
16-
log_job_event(LogEvent::JobExecution, job, event)
16+
log_job_event(LogEvent::Enqueue, job, event)
1717
end
1818

1919
def enqueue_at(event)
2020
job = event.payload[:job]
21-
log_job_event(LogEvent::JobExecution, job, event, scheduled_at: job.scheduled_at)
21+
log_job_event(LogEvent::Schedule, job, event, scheduled_at: job.scheduled_at)
2222
end
2323

2424
def perform(event)
@@ -29,21 +29,21 @@ def perform(event)
2929
# Log the exception with the job context
3030
log_exception(exception, job, event)
3131
else
32-
log_job_event(LogEvent::JobExecution, job, event, duration: event.duration.round(2))
32+
log_job_event(LogEvent::Finish, job, event, duration: event.duration.round(2))
3333
end
3434
end
3535

3636
def perform_start(event)
3737
job = event.payload[:job]
38-
log_job_event(LogEvent::JobExecution, job, event)
38+
log_job_event(LogEvent::Start, job, event)
3939
end
4040

4141
private
4242

4343
def log_job_event(event_type, job, _event, additional_data = {})
4444
# Create structured log data
4545
log_data = Log::Job.new(
46-
evt: event_type,
46+
event: event_type,
4747
job_id: job.job_id,
4848
job_class: job.class.to_s,
4949
queue_name: job.queue_name,
@@ -77,8 +77,7 @@ def log_exception(exception, job, _event)
7777

7878
# Create exception log with job source and context
7979
log_data = Log::Exception.from_exception(
80-
LogSource::Job,
81-
LogEvent::Error,
80+
Source::Job,
8281
exception,
8382
job_context
8483
)

lib/log_struct/integrations/active_storage.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,8 @@ def process_active_storage_event(event)
4343

4444
# Create structured log data
4545
log_data = Log::Storage.new(
46-
src: LogSource::Storage,
47-
evt: event_type,
46+
source: Source::Storage,
47+
event: event_type,
4848
operation: operation,
4949
storage: service,
5050
file_id: payload[:key],

lib/log_struct/integrations/carrierwave.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,8 +73,8 @@ def log_operation(operation, file_info, duration)
7373

7474
# Create structured log data
7575
log_data = Log::CarrierWave.new(
76-
src: LogSource::CarrierWave,
77-
evt: event_type,
76+
source: Source::CarrierWave,
77+
event: event_type,
7878
operation: operation.to_s,
7979
storage: storage.to_s,
8080
file_id: identifier,

lib/log_struct/integrations/host_authorization.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@ def setup
2121
blocked_hosts = env["action_dispatch.blocked_hosts"]
2222

2323
# Create a structured security log entry
24-
security_log = LogStruct::Log::Security.new(
25-
sec_evt: LogSecurityEvent::BlockedHost,
26-
msg: "Blocked host detected: #{request.host}",
24+
security_log = Log::Security.new(
25+
sec_event: LogSecurityEvent::BlockedHost,
26+
message: "Blocked host detected: #{request.host}",
2727
blocked_host: request.host,
2828
blocked_hosts: blocked_hosts,
2929
request_id: request.request_id,

lib/log_struct/integrations/lograge.rb

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,13 @@ def setup
2121
::Rails.application.configure do
2222
config.lograge.enabled = true
2323
# Use a raw formatter that just returns the log struct.
24-
# The struct is converted to JSON by our JSONFormatter (after filtering, etc.)
24+
# The struct is converted to JSON by our Formatter (after filtering, etc.)
2525
config.lograge.formatter = T.let(
2626
lambda do |data|
2727
# Convert the data hash to a Log::Request struct
2828
Log::Request.new(
29-
src: LogSource::Rails,
30-
evt: LogEvent::Request,
29+
source: Source::Rails,
30+
event: LogEvent::Request,
3131
ts: T.cast(Time.now, Time),
3232
http_method: data[:method],
3333
path: data[:path],
@@ -61,7 +61,7 @@ def lograge_default_options(event)
6161
).compact
6262

6363
# We'll set these in the formatter
64-
# options[:src] = LogSource::Rails
64+
# options[:src] = Source::Rails
6565
# options[:evt] = LogEvent::Request
6666

6767
if event.payload[:params].present?

0 commit comments

Comments
 (0)