logstruct 0.1.12 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +139 -1
- data/README.md +76 -68
- data/lib/log_struct/concerns/configuration.rb +139 -91
- data/lib/log_struct/concerns/error_handling.rb +36 -6
- data/lib/log_struct/config_struct/error_handling_modes.rb +3 -1
- data/lib/log_struct/config_struct/filters.rb +116 -33
- data/lib/log_struct/config_struct/integrations.rb +0 -4
- data/lib/log_struct/config_struct/limits.rb +29 -0
- data/lib/log_struct/configuration.rb +2 -0
- data/lib/log_struct/enums/event.rb +3 -1
- data/lib/log_struct/enums/log_field.rb +5 -0
- data/lib/log_struct/formatter.rb +304 -56
- data/lib/log_struct/hash_utils.rb +33 -4
- data/lib/log_struct/integrations/action_mailer/error_handling.rb +78 -20
- data/lib/log_struct/integrations/action_mailer/fallback_error_handlers.rb +81 -0
- data/lib/log_struct/integrations/action_mailer/metadata_collection.rb +0 -20
- data/lib/log_struct/integrations/action_mailer.rb +22 -17
- data/lib/log_struct/integrations/active_job/log_subscriber.rb +177 -25
- data/lib/log_struct/integrations/active_job.rb +2 -7
- data/lib/log_struct/integrations/active_model_serializers.rb +7 -1
- data/lib/log_struct/integrations/active_record.rb +39 -17
- data/lib/log_struct/integrations/active_storage.rb +31 -31
- data/lib/log_struct/integrations/ahoy.rb +19 -15
- data/lib/log_struct/integrations/carrierwave.rb +55 -51
- data/lib/log_struct/integrations/dotenv.rb +22 -32
- data/lib/log_struct/integrations/good_job/logger.rb +30 -24
- data/lib/log_struct/integrations/good_job.rb +111 -40
- data/lib/log_struct/integrations/host_authorization.rb +47 -36
- data/lib/log_struct/integrations/lograge.rb +80 -4
- data/lib/log_struct/integrations/puma.rb +74 -34
- data/lib/log_struct/integrations/rack_error_handler/debug_exceptions_logging.rb +35 -0
- data/lib/log_struct/integrations/rack_error_handler/error_lines.rb +160 -0
- data/lib/log_struct/integrations/rack_error_handler/middleware.rb +14 -169
- data/lib/log_struct/integrations/rack_error_handler/parse_error_logging.rb +36 -0
- data/lib/log_struct/integrations/rack_error_handler.rb +20 -4
- data/lib/log_struct/integrations/rack_middleware.rb +23 -0
- data/lib/log_struct/integrations/rails_log_subscribers.rb +32 -0
- data/lib/log_struct/integrations/request_context/middleware.rb +4 -9
- data/lib/log_struct/integrations/shrine.rb +48 -73
- data/lib/log_struct/integrations/sidekiq/job_context_middleware.rb +32 -0
- data/lib/log_struct/integrations/sidekiq/logger.rb +17 -9
- data/lib/log_struct/integrations/sidekiq.rb +98 -7
- data/lib/log_struct/integrations/sorbet.rb +10 -46
- data/lib/log_struct/integrations.rb +3 -2
- data/lib/log_struct/log/{good_job/enqueue.rb → active_job/discard.rb} +13 -13
- data/lib/log_struct/log/active_job/enqueue.rb +0 -4
- data/lib/log_struct/log/{good_job/schedule.rb → active_job/error.rb} +15 -15
- data/lib/log_struct/log/{good_job/start.rb → active_job/retry.rb} +13 -13
- data/lib/log_struct/log/{good_job/finish.rb → active_job/retry_stopped.rb} +13 -17
- data/lib/log_struct/log/active_job.rb +4 -0
- data/lib/log_struct/log/active_storage/delete.rb +6 -2
- data/lib/log_struct/log/active_storage/download.rb +2 -4
- data/lib/log_struct/log/active_storage/exist.rb +2 -2
- data/lib/log_struct/log/active_storage/metadata.rb +4 -4
- data/lib/log_struct/log/active_storage/upload.rb +2 -10
- data/lib/log_struct/log/active_storage/url.rb +2 -6
- data/lib/log_struct/log/active_storage.rb +2 -3
- data/lib/log_struct/log/error.rb +24 -1
- data/lib/log_struct/log/good_job.rb +0 -4
- data/lib/log_struct/log/puma/error.rb +63 -0
- data/lib/log_struct/log/puma.rb +1 -0
- data/lib/log_struct/log/security/blocked_host.rb +0 -4
- data/lib/log_struct/log/shrine/exist.rb +0 -2
- data/lib/log_struct/log/shrine/metadata.rb +2 -4
- data/lib/log_struct/log/shrine/upload.rb +4 -0
- data/lib/log_struct/log/sidekiq/error.rb +63 -0
- data/lib/log_struct/log/{active_storage/stream.rb → sidekiq/log.rb} +17 -11
- data/lib/log_struct/log/sidekiq.rb +3 -45
- data/lib/log_struct/log.rb +4 -2
- data/lib/log_struct/logged_errors.rb +25 -0
- data/lib/log_struct/monkey_patches/active_support/tagged_logging/formatter.rb +2 -3
- data/lib/log_struct/param_filters.rb +51 -38
- data/lib/log_struct/params_errors.rb +78 -0
- data/lib/log_struct/rails_boot_banner_silencer.rb +7 -2
- data/lib/log_struct/railtie.rb +29 -14
- data/lib/log_struct/semantic_logger/color_formatter.rb +60 -53
- data/lib/log_struct/semantic_logger/concerns/log_methods.rb +65 -57
- data/lib/log_struct/semantic_logger/formatter.rb +79 -57
- data/lib/log_struct/semantic_logger/logger.rb +29 -53
- data/lib/log_struct/semantic_logger/reopen_after_fork.rb +40 -0
- data/lib/log_struct/semantic_logger/setup.rb +115 -112
- data/lib/log_struct/shared/serialize_common.rb +2 -7
- data/lib/log_struct/string_scrubber.rb +229 -20
- data/lib/log_struct/version.rb +1 -1
- data/lib/log_struct.rb +6 -4
- data/logstruct.gemspec +19 -10
- metadata +63 -11
- data/lib/log_struct/builders/active_job.rb +0 -87
- data/lib/log_struct/integrations/good_job/log_subscriber.rb +0 -189
- data/lib/log_struct/integrations/rack.rb +0 -31
|
@@ -19,27 +19,27 @@ require_relative "../../enums/log_field"
|
|
|
19
19
|
|
|
20
20
|
module LogStruct
|
|
21
21
|
module Log
|
|
22
|
-
class
|
|
23
|
-
class
|
|
22
|
+
class ActiveJob
|
|
23
|
+
class Retry < T::Struct
|
|
24
24
|
extend T::Sig
|
|
25
25
|
|
|
26
26
|
# Shared/common fields
|
|
27
27
|
const :source, Source::Job, default: Source::Job
|
|
28
|
-
const :event, Event, default: Event::
|
|
28
|
+
const :event, Event, default: Event::Retry
|
|
29
29
|
const :timestamp, Time, factory: -> { Time.now }
|
|
30
30
|
const :level, Level, default: Level::Info
|
|
31
31
|
|
|
32
|
-
const :job_id,
|
|
33
|
-
const :job_class,
|
|
32
|
+
const :job_id, String
|
|
33
|
+
const :job_class, String
|
|
34
34
|
const :queue_name, T.nilable(Symbol), default: nil
|
|
35
35
|
const :arguments, T.nilable(T::Array[T.untyped]), default: nil
|
|
36
36
|
const :executions, T.nilable(Integer), default: nil
|
|
37
|
+
const :provider_job_id, T.nilable(String), default: nil
|
|
37
38
|
|
|
38
39
|
# Event-specific fields
|
|
39
|
-
const :
|
|
40
|
-
const :
|
|
40
|
+
const :error_class, T.nilable(T.class_of(Exception)), default: nil
|
|
41
|
+
const :message, T.nilable(String), default: nil
|
|
41
42
|
const :wait_ms, T.nilable(Float), default: nil
|
|
42
|
-
const :scheduled_at, T.nilable(Time), default: nil
|
|
43
43
|
|
|
44
44
|
# Serialize shared fields
|
|
45
45
|
include LogStruct::Log::Interfaces::CommonFields
|
|
@@ -48,15 +48,15 @@ module LogStruct
|
|
|
48
48
|
sig { returns(T::Hash[LogStruct::LogField, T.untyped]) }
|
|
49
49
|
def to_h
|
|
50
50
|
h = T.let({}, T::Hash[LogStruct::LogField, T.untyped])
|
|
51
|
-
h[LogField::JobId] = job_id
|
|
52
|
-
h[LogField::JobClass] = job_class
|
|
51
|
+
h[LogField::JobId] = job_id
|
|
52
|
+
h[LogField::JobClass] = job_class
|
|
53
53
|
h[LogField::QueueName] = queue_name unless queue_name.nil?
|
|
54
54
|
h[LogField::Arguments] = arguments unless arguments.nil?
|
|
55
55
|
h[LogField::Executions] = executions unless executions.nil?
|
|
56
|
-
h[LogField::
|
|
57
|
-
h[LogField::
|
|
56
|
+
h[LogField::ProviderJobId] = provider_job_id unless provider_job_id.nil?
|
|
57
|
+
h[LogField::ErrorClass] = error_class unless error_class.nil?
|
|
58
|
+
h[LogField::Message] = message unless message.nil?
|
|
58
59
|
h[LogField::WaitMs] = wait_ms unless wait_ms.nil?
|
|
59
|
-
h[LogField::ScheduledAt] = scheduled_at unless scheduled_at.nil?
|
|
60
60
|
h
|
|
61
61
|
end
|
|
62
62
|
end
|
|
@@ -19,28 +19,26 @@ require_relative "../../enums/log_field"
|
|
|
19
19
|
|
|
20
20
|
module LogStruct
|
|
21
21
|
module Log
|
|
22
|
-
class
|
|
23
|
-
class
|
|
22
|
+
class ActiveJob
|
|
23
|
+
class RetryStopped < T::Struct
|
|
24
24
|
extend T::Sig
|
|
25
25
|
|
|
26
26
|
# Shared/common fields
|
|
27
27
|
const :source, Source::Job, default: Source::Job
|
|
28
|
-
const :event, Event, default: Event::
|
|
28
|
+
const :event, Event, default: Event::RetryStopped
|
|
29
29
|
const :timestamp, Time, factory: -> { Time.now }
|
|
30
30
|
const :level, Level, default: Level::Info
|
|
31
31
|
|
|
32
|
-
const :job_id,
|
|
33
|
-
const :job_class,
|
|
32
|
+
const :job_id, String
|
|
33
|
+
const :job_class, String
|
|
34
34
|
const :queue_name, T.nilable(Symbol), default: nil
|
|
35
35
|
const :arguments, T.nilable(T::Array[T.untyped]), default: nil
|
|
36
36
|
const :executions, T.nilable(Integer), default: nil
|
|
37
|
+
const :provider_job_id, T.nilable(String), default: nil
|
|
37
38
|
|
|
38
39
|
# Event-specific fields
|
|
39
|
-
const :
|
|
40
|
-
const :
|
|
41
|
-
const :process_id, Integer
|
|
42
|
-
const :thread_id, String
|
|
43
|
-
const :result, T.nilable(String), default: nil
|
|
40
|
+
const :error_class, T.class_of(Exception)
|
|
41
|
+
const :message, String
|
|
44
42
|
|
|
45
43
|
# Serialize shared fields
|
|
46
44
|
include LogStruct::Log::Interfaces::CommonFields
|
|
@@ -49,16 +47,14 @@ module LogStruct
|
|
|
49
47
|
sig { returns(T::Hash[LogStruct::LogField, T.untyped]) }
|
|
50
48
|
def to_h
|
|
51
49
|
h = T.let({}, T::Hash[LogStruct::LogField, T.untyped])
|
|
52
|
-
h[LogField::JobId] = job_id
|
|
53
|
-
h[LogField::JobClass] = job_class
|
|
50
|
+
h[LogField::JobId] = job_id
|
|
51
|
+
h[LogField::JobClass] = job_class
|
|
54
52
|
h[LogField::QueueName] = queue_name unless queue_name.nil?
|
|
55
53
|
h[LogField::Arguments] = arguments unless arguments.nil?
|
|
56
54
|
h[LogField::Executions] = executions unless executions.nil?
|
|
57
|
-
h[LogField::
|
|
58
|
-
h[LogField::
|
|
59
|
-
h[LogField::
|
|
60
|
-
h[LogField::ThreadId] = thread_id
|
|
61
|
-
h[LogField::Result] = result unless result.nil?
|
|
55
|
+
h[LogField::ProviderJobId] = provider_job_id unless provider_job_id.nil?
|
|
56
|
+
h[LogField::ErrorClass] = error_class
|
|
57
|
+
h[LogField::Message] = message
|
|
62
58
|
h
|
|
63
59
|
end
|
|
64
60
|
end
|
|
@@ -10,6 +10,10 @@ require_relative "active_job/enqueue"
|
|
|
10
10
|
require_relative "active_job/schedule"
|
|
11
11
|
require_relative "active_job/start"
|
|
12
12
|
require_relative "active_job/finish"
|
|
13
|
+
require_relative "active_job/retry"
|
|
14
|
+
require_relative "active_job/retry_stopped"
|
|
15
|
+
require_relative "active_job/discard"
|
|
16
|
+
require_relative "active_job/error"
|
|
13
17
|
|
|
14
18
|
module LogStruct
|
|
15
19
|
module Log
|
|
@@ -30,7 +30,10 @@ module LogStruct
|
|
|
30
30
|
const :level, Level, default: Level::Info
|
|
31
31
|
|
|
32
32
|
const :storage, Symbol
|
|
33
|
-
const :file_id, String
|
|
33
|
+
const :file_id, T.nilable(String), default: nil
|
|
34
|
+
|
|
35
|
+
# Event-specific fields
|
|
36
|
+
const :prefix, T.nilable(String), default: nil
|
|
34
37
|
|
|
35
38
|
# Serialize shared fields
|
|
36
39
|
include LogStruct::Log::Interfaces::CommonFields
|
|
@@ -40,7 +43,8 @@ module LogStruct
|
|
|
40
43
|
def to_h
|
|
41
44
|
h = T.let({}, T::Hash[LogStruct::LogField, T.untyped])
|
|
42
45
|
h[LogField::Storage] = storage
|
|
43
|
-
h[LogField::FileId] = file_id
|
|
46
|
+
h[LogField::FileId] = file_id unless file_id.nil?
|
|
47
|
+
h[LogField::Prefix] = prefix unless prefix.nil?
|
|
44
48
|
h
|
|
45
49
|
end
|
|
46
50
|
end
|
|
@@ -30,10 +30,9 @@ module LogStruct
|
|
|
30
30
|
const :level, Level, default: Level::Info
|
|
31
31
|
|
|
32
32
|
const :storage, Symbol
|
|
33
|
-
const :file_id, String
|
|
33
|
+
const :file_id, T.nilable(String), default: nil
|
|
34
34
|
|
|
35
35
|
# Event-specific fields
|
|
36
|
-
const :filename, T.nilable(String), default: nil
|
|
37
36
|
const :range, T.nilable(String), default: nil
|
|
38
37
|
const :duration_ms, T.nilable(Float), default: nil
|
|
39
38
|
|
|
@@ -45,8 +44,7 @@ module LogStruct
|
|
|
45
44
|
def to_h
|
|
46
45
|
h = T.let({}, T::Hash[LogStruct::LogField, T.untyped])
|
|
47
46
|
h[LogField::Storage] = storage
|
|
48
|
-
h[LogField::FileId] = file_id
|
|
49
|
-
h[LogField::Filename] = filename unless filename.nil?
|
|
47
|
+
h[LogField::FileId] = file_id unless file_id.nil?
|
|
50
48
|
h[LogField::Range] = range unless range.nil?
|
|
51
49
|
h[LogField::DurationMs] = duration_ms unless duration_ms.nil?
|
|
52
50
|
h
|
|
@@ -30,7 +30,7 @@ module LogStruct
|
|
|
30
30
|
const :level, Level, default: Level::Info
|
|
31
31
|
|
|
32
32
|
const :storage, Symbol
|
|
33
|
-
const :file_id, String
|
|
33
|
+
const :file_id, T.nilable(String), default: nil
|
|
34
34
|
|
|
35
35
|
# Event-specific fields
|
|
36
36
|
const :exist, T.nilable(T::Boolean), default: nil
|
|
@@ -43,7 +43,7 @@ module LogStruct
|
|
|
43
43
|
def to_h
|
|
44
44
|
h = T.let({}, T::Hash[LogStruct::LogField, T.untyped])
|
|
45
45
|
h[LogField::Storage] = storage
|
|
46
|
-
h[LogField::FileId] = file_id
|
|
46
|
+
h[LogField::FileId] = file_id unless file_id.nil?
|
|
47
47
|
h[LogField::Exist] = exist unless exist.nil?
|
|
48
48
|
h
|
|
49
49
|
end
|
|
@@ -30,10 +30,10 @@ module LogStruct
|
|
|
30
30
|
const :level, Level, default: Level::Info
|
|
31
31
|
|
|
32
32
|
const :storage, Symbol
|
|
33
|
-
const :file_id, String
|
|
33
|
+
const :file_id, T.nilable(String), default: nil
|
|
34
34
|
|
|
35
35
|
# Event-specific fields
|
|
36
|
-
const :
|
|
36
|
+
const :mime_type, T.nilable(String), default: nil
|
|
37
37
|
|
|
38
38
|
# Serialize shared fields
|
|
39
39
|
include LogStruct::Log::Interfaces::CommonFields
|
|
@@ -43,8 +43,8 @@ module LogStruct
|
|
|
43
43
|
def to_h
|
|
44
44
|
h = T.let({}, T::Hash[LogStruct::LogField, T.untyped])
|
|
45
45
|
h[LogField::Storage] = storage
|
|
46
|
-
h[LogField::FileId] = file_id
|
|
47
|
-
h[LogField::
|
|
46
|
+
h[LogField::FileId] = file_id unless file_id.nil?
|
|
47
|
+
h[LogField::MimeType] = mime_type unless mime_type.nil?
|
|
48
48
|
h
|
|
49
49
|
end
|
|
50
50
|
end
|
|
@@ -30,13 +30,9 @@ module LogStruct
|
|
|
30
30
|
const :level, Level, default: Level::Info
|
|
31
31
|
|
|
32
32
|
const :storage, Symbol
|
|
33
|
-
const :file_id, String
|
|
33
|
+
const :file_id, T.nilable(String), default: nil
|
|
34
34
|
|
|
35
35
|
# Event-specific fields
|
|
36
|
-
const :filename, T.nilable(String), default: nil
|
|
37
|
-
const :mime_type, T.nilable(String), default: nil
|
|
38
|
-
const :size, T.nilable(Integer), default: nil
|
|
39
|
-
const :metadata, T.nilable(T::Hash[String, T.untyped]), default: nil
|
|
40
36
|
const :duration_ms, T.nilable(Float), default: nil
|
|
41
37
|
const :checksum, T.nilable(String), default: nil
|
|
42
38
|
|
|
@@ -48,11 +44,7 @@ module LogStruct
|
|
|
48
44
|
def to_h
|
|
49
45
|
h = T.let({}, T::Hash[LogStruct::LogField, T.untyped])
|
|
50
46
|
h[LogField::Storage] = storage
|
|
51
|
-
h[LogField::FileId] = file_id
|
|
52
|
-
h[LogField::Filename] = filename unless filename.nil?
|
|
53
|
-
h[LogField::MimeType] = mime_type unless mime_type.nil?
|
|
54
|
-
h[LogField::Size] = size unless size.nil?
|
|
55
|
-
h[LogField::Metadata] = metadata unless metadata.nil?
|
|
47
|
+
h[LogField::FileId] = file_id unless file_id.nil?
|
|
56
48
|
h[LogField::DurationMs] = duration_ms unless duration_ms.nil?
|
|
57
49
|
h[LogField::Checksum] = checksum unless checksum.nil?
|
|
58
50
|
h
|
|
@@ -30,10 +30,7 @@ module LogStruct
|
|
|
30
30
|
const :level, Level, default: Level::Info
|
|
31
31
|
|
|
32
32
|
const :storage, Symbol
|
|
33
|
-
const :file_id, String
|
|
34
|
-
|
|
35
|
-
# Event-specific fields
|
|
36
|
-
const :url, String
|
|
33
|
+
const :file_id, T.nilable(String), default: nil
|
|
37
34
|
|
|
38
35
|
# Serialize shared fields
|
|
39
36
|
include LogStruct::Log::Interfaces::CommonFields
|
|
@@ -43,8 +40,7 @@ module LogStruct
|
|
|
43
40
|
def to_h
|
|
44
41
|
h = T.let({}, T::Hash[LogStruct::LogField, T.untyped])
|
|
45
42
|
h[LogField::Storage] = storage
|
|
46
|
-
h[LogField::FileId] = file_id
|
|
47
|
-
h[LogField::Url] = url
|
|
43
|
+
h[LogField::FileId] = file_id unless file_id.nil?
|
|
48
44
|
h
|
|
49
45
|
end
|
|
50
46
|
end
|
|
@@ -11,7 +11,6 @@ require_relative "active_storage/download"
|
|
|
11
11
|
require_relative "active_storage/delete"
|
|
12
12
|
require_relative "active_storage/metadata"
|
|
13
13
|
require_relative "active_storage/exist"
|
|
14
|
-
require_relative "active_storage/stream"
|
|
15
14
|
require_relative "active_storage/url"
|
|
16
15
|
|
|
17
16
|
module LogStruct
|
|
@@ -20,12 +19,12 @@ module LogStruct
|
|
|
20
19
|
class BaseFields < T::Struct
|
|
21
20
|
extend T::Sig
|
|
22
21
|
const :storage, Symbol
|
|
23
|
-
const :file_id, String
|
|
22
|
+
const :file_id, T.nilable(String), default: nil
|
|
24
23
|
|
|
25
24
|
Kwargs = T.type_alias do
|
|
26
25
|
{
|
|
27
26
|
storage: Symbol,
|
|
28
|
-
file_id: String
|
|
27
|
+
file_id: T.nilable(String)
|
|
29
28
|
}
|
|
30
29
|
end
|
|
31
30
|
|
data/lib/log_struct/log/error.rb
CHANGED
|
@@ -28,26 +28,49 @@ module LogStruct
|
|
|
28
28
|
const :timestamp, Time, factory: -> { Time.now }
|
|
29
29
|
const :level, Level, default: Level::Info
|
|
30
30
|
|
|
31
|
+
const :path, T.nilable(String), default: nil
|
|
32
|
+
const :http_method, T.nilable(String), default: nil
|
|
33
|
+
const :source_ip, T.nilable(String), default: nil
|
|
34
|
+
const :user_agent, T.nilable(String), default: nil
|
|
35
|
+
const :referer, T.nilable(String), default: nil
|
|
36
|
+
|
|
31
37
|
# Event-specific fields
|
|
32
|
-
const :error_class, T.class_of(
|
|
38
|
+
const :error_class, T.class_of(Exception)
|
|
33
39
|
const :message, String
|
|
40
|
+
const :error_message, T.nilable(String), default: nil
|
|
34
41
|
const :backtrace, T.nilable(T::Array[String]), default: nil
|
|
42
|
+
const :status, T.nilable(Integer), default: nil
|
|
43
|
+
const :cause_class, T.nilable(String), default: nil
|
|
44
|
+
const :cause_message, T.nilable(String), default: nil
|
|
35
45
|
|
|
36
46
|
# Additional data
|
|
37
47
|
include LogStruct::Log::Interfaces::AdditionalDataField
|
|
38
48
|
const :additional_data, T.nilable(T::Hash[T.any(String, Symbol), T.untyped]), default: nil
|
|
39
49
|
include LogStruct::Log::Shared::MergeAdditionalDataFields
|
|
40
50
|
|
|
51
|
+
# Request fields (optional)
|
|
52
|
+
include LogStruct::Log::Interfaces::RequestFields
|
|
53
|
+
|
|
41
54
|
# Serialize shared fields
|
|
42
55
|
include LogStruct::Log::Interfaces::CommonFields
|
|
43
56
|
include LogStruct::Log::Shared::SerializeCommon
|
|
57
|
+
include LogStruct::Log::Shared::AddRequestFields
|
|
44
58
|
|
|
45
59
|
sig { returns(T::Hash[LogStruct::LogField, T.untyped]) }
|
|
46
60
|
def to_h
|
|
47
61
|
h = T.let({}, T::Hash[LogStruct::LogField, T.untyped])
|
|
62
|
+
h[LogField::Path] = path unless path.nil?
|
|
63
|
+
h[LogField::HttpMethod] = http_method unless http_method.nil?
|
|
64
|
+
h[LogField::SourceIp] = source_ip unless source_ip.nil?
|
|
65
|
+
h[LogField::UserAgent] = user_agent unless user_agent.nil?
|
|
66
|
+
h[LogField::Referer] = referer unless referer.nil?
|
|
48
67
|
h[LogField::ErrorClass] = error_class
|
|
49
68
|
h[LogField::Message] = message
|
|
69
|
+
h[LogField::ErrorMessage] = error_message unless error_message.nil?
|
|
50
70
|
h[LogField::Backtrace] = backtrace unless backtrace.nil?
|
|
71
|
+
h[LogField::Status] = status unless status.nil?
|
|
72
|
+
h[LogField::CauseClass] = cause_class unless cause_class.nil?
|
|
73
|
+
h[LogField::CauseMessage] = cause_message unless cause_message.nil?
|
|
51
74
|
h
|
|
52
75
|
end
|
|
53
76
|
end
|
|
@@ -7,11 +7,7 @@
|
|
|
7
7
|
# Template: tools/codegen/templates/sorbet/source_parent.rb.erb
|
|
8
8
|
|
|
9
9
|
require_relative "good_job/log"
|
|
10
|
-
require_relative "good_job/enqueue"
|
|
11
|
-
require_relative "good_job/start"
|
|
12
|
-
require_relative "good_job/finish"
|
|
13
10
|
require_relative "good_job/error"
|
|
14
|
-
require_relative "good_job/schedule"
|
|
15
11
|
|
|
16
12
|
module LogStruct
|
|
17
13
|
module Log
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# typed: strict
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
# AUTO-GENERATED: DO NOT EDIT
|
|
5
|
+
# Generated by scripts/generate_structs.rb
|
|
6
|
+
# Schemas dir: schemas/log_sources/
|
|
7
|
+
# Template: tools/codegen/templates/sorbet/event.rb.erb
|
|
8
|
+
|
|
9
|
+
require "log_struct/shared/interfaces/common_fields"
|
|
10
|
+
require "log_struct/shared/interfaces/additional_data_field"
|
|
11
|
+
require "log_struct/shared/interfaces/request_fields"
|
|
12
|
+
require "log_struct/shared/serialize_common"
|
|
13
|
+
require "log_struct/shared/merge_additional_data_fields"
|
|
14
|
+
require "log_struct/shared/add_request_fields"
|
|
15
|
+
require_relative "../../enums/source"
|
|
16
|
+
require_relative "../../enums/event"
|
|
17
|
+
require_relative "../../enums/level"
|
|
18
|
+
require_relative "../../enums/log_field"
|
|
19
|
+
|
|
20
|
+
module LogStruct
|
|
21
|
+
module Log
|
|
22
|
+
class Puma
|
|
23
|
+
class Error < T::Struct
|
|
24
|
+
extend T::Sig
|
|
25
|
+
|
|
26
|
+
# Shared/common fields
|
|
27
|
+
const :source, Source::Puma, default: Source::Puma
|
|
28
|
+
const :event, Event, default: Event::Error
|
|
29
|
+
const :timestamp, Time, factory: -> { Time.now }
|
|
30
|
+
const :level, Level, default: Level::Info
|
|
31
|
+
|
|
32
|
+
# Event-specific fields
|
|
33
|
+
const :error_class, T.class_of(Exception)
|
|
34
|
+
const :message, String
|
|
35
|
+
const :backtrace, T.nilable(T::Array[String]), default: nil
|
|
36
|
+
const :error_context, T.nilable(String), default: nil
|
|
37
|
+
const :http_method, T.nilable(String), default: nil
|
|
38
|
+
const :path, T.nilable(String), default: nil
|
|
39
|
+
|
|
40
|
+
# Additional data
|
|
41
|
+
include LogStruct::Log::Interfaces::AdditionalDataField
|
|
42
|
+
const :additional_data, T.nilable(T::Hash[T.any(String, Symbol), T.untyped]), default: nil
|
|
43
|
+
include LogStruct::Log::Shared::MergeAdditionalDataFields
|
|
44
|
+
|
|
45
|
+
# Serialize shared fields
|
|
46
|
+
include LogStruct::Log::Interfaces::CommonFields
|
|
47
|
+
include LogStruct::Log::Shared::SerializeCommon
|
|
48
|
+
|
|
49
|
+
sig { returns(T::Hash[LogStruct::LogField, T.untyped]) }
|
|
50
|
+
def to_h
|
|
51
|
+
h = T.let({}, T::Hash[LogStruct::LogField, T.untyped])
|
|
52
|
+
h[LogField::ErrorClass] = error_class
|
|
53
|
+
h[LogField::Message] = message
|
|
54
|
+
h[LogField::Backtrace] = backtrace unless backtrace.nil?
|
|
55
|
+
h[LogField::ErrorContext] = error_context unless error_context.nil?
|
|
56
|
+
h[LogField::HttpMethod] = http_method unless http_method.nil?
|
|
57
|
+
h[LogField::Path] = path unless path.nil?
|
|
58
|
+
h
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
end
|
data/lib/log_struct/log/puma.rb
CHANGED
|
@@ -40,8 +40,6 @@ module LogStruct
|
|
|
40
40
|
const :blocked_host, T.nilable(String), default: nil
|
|
41
41
|
const :blocked_hosts, T.nilable(T::Array[String]), default: nil
|
|
42
42
|
const :x_forwarded_for, T.nilable(String), default: nil
|
|
43
|
-
const :allowed_hosts, T.nilable(T::Array[String]), default: nil
|
|
44
|
-
const :allow_ip_hosts, T.nilable(T::Boolean), default: nil
|
|
45
43
|
|
|
46
44
|
# Additional data
|
|
47
45
|
include LogStruct::Log::Interfaces::AdditionalDataField
|
|
@@ -68,8 +66,6 @@ module LogStruct
|
|
|
68
66
|
h[LogField::BlockedHost] = blocked_host unless blocked_host.nil?
|
|
69
67
|
h[LogField::BlockedHosts] = blocked_hosts unless blocked_hosts.nil?
|
|
70
68
|
h[LogField::XForwardedFor] = x_forwarded_for unless x_forwarded_for.nil?
|
|
71
|
-
h[LogField::AllowedHosts] = allowed_hosts unless allowed_hosts.nil?
|
|
72
|
-
h[LogField::AllowIpHosts] = allow_ip_hosts unless allow_ip_hosts.nil?
|
|
73
69
|
h
|
|
74
70
|
end
|
|
75
71
|
end
|
|
@@ -32,7 +32,6 @@ module LogStruct
|
|
|
32
32
|
# Event-specific fields
|
|
33
33
|
const :storage, Symbol
|
|
34
34
|
const :location, String
|
|
35
|
-
const :exist, T.nilable(T::Boolean), default: nil
|
|
36
35
|
|
|
37
36
|
# Serialize shared fields
|
|
38
37
|
include LogStruct::Log::Interfaces::CommonFields
|
|
@@ -43,7 +42,6 @@ module LogStruct
|
|
|
43
42
|
h = T.let({}, T::Hash[LogStruct::LogField, T.untyped])
|
|
44
43
|
h[LogField::Storage] = storage
|
|
45
44
|
h[LogField::Location] = location
|
|
46
|
-
h[LogField::Exist] = exist unless exist.nil?
|
|
47
45
|
h
|
|
48
46
|
end
|
|
49
47
|
end
|
|
@@ -31,8 +31,7 @@ module LogStruct
|
|
|
31
31
|
|
|
32
32
|
# Event-specific fields
|
|
33
33
|
const :storage, Symbol
|
|
34
|
-
const :
|
|
35
|
-
const :metadata, T.nilable(T::Hash[String, T.untyped]), default: nil
|
|
34
|
+
const :duration_ms, T.nilable(Float), default: nil
|
|
36
35
|
|
|
37
36
|
# Serialize shared fields
|
|
38
37
|
include LogStruct::Log::Interfaces::CommonFields
|
|
@@ -42,8 +41,7 @@ module LogStruct
|
|
|
42
41
|
def to_h
|
|
43
42
|
h = T.let({}, T::Hash[LogStruct::LogField, T.untyped])
|
|
44
43
|
h[LogField::Storage] = storage
|
|
45
|
-
h[LogField::
|
|
46
|
-
h[LogField::Metadata] = metadata unless metadata.nil?
|
|
44
|
+
h[LogField::DurationMs] = duration_ms unless duration_ms.nil?
|
|
47
45
|
h
|
|
48
46
|
end
|
|
49
47
|
end
|
|
@@ -32,6 +32,8 @@ module LogStruct
|
|
|
32
32
|
# Event-specific fields
|
|
33
33
|
const :storage, Symbol
|
|
34
34
|
const :location, String
|
|
35
|
+
const :mime_type, T.nilable(String), default: nil
|
|
36
|
+
const :size, T.nilable(Integer), default: nil
|
|
35
37
|
const :upload_options, T.nilable(T::Hash[Symbol, T.untyped]), default: nil
|
|
36
38
|
const :options, T.nilable(T::Hash[Symbol, T.untyped]), default: nil
|
|
37
39
|
const :uploader, T.nilable(String), default: nil
|
|
@@ -46,6 +48,8 @@ module LogStruct
|
|
|
46
48
|
h = T.let({}, T::Hash[LogStruct::LogField, T.untyped])
|
|
47
49
|
h[LogField::Storage] = storage
|
|
48
50
|
h[LogField::Location] = location
|
|
51
|
+
h[LogField::MimeType] = mime_type unless mime_type.nil?
|
|
52
|
+
h[LogField::Size] = size unless size.nil?
|
|
49
53
|
h[LogField::UploadOptions] = upload_options unless upload_options.nil?
|
|
50
54
|
h[LogField::Options] = options unless options.nil?
|
|
51
55
|
h[LogField::Uploader] = uploader unless uploader.nil?
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# typed: strict
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
# AUTO-GENERATED: DO NOT EDIT
|
|
5
|
+
# Generated by scripts/generate_structs.rb
|
|
6
|
+
# Schemas dir: schemas/log_sources/
|
|
7
|
+
# Template: tools/codegen/templates/sorbet/event.rb.erb
|
|
8
|
+
|
|
9
|
+
require "log_struct/shared/interfaces/common_fields"
|
|
10
|
+
require "log_struct/shared/interfaces/additional_data_field"
|
|
11
|
+
require "log_struct/shared/interfaces/request_fields"
|
|
12
|
+
require "log_struct/shared/serialize_common"
|
|
13
|
+
require "log_struct/shared/merge_additional_data_fields"
|
|
14
|
+
require "log_struct/shared/add_request_fields"
|
|
15
|
+
require_relative "../../enums/source"
|
|
16
|
+
require_relative "../../enums/event"
|
|
17
|
+
require_relative "../../enums/level"
|
|
18
|
+
require_relative "../../enums/log_field"
|
|
19
|
+
|
|
20
|
+
module LogStruct
|
|
21
|
+
module Log
|
|
22
|
+
class Sidekiq
|
|
23
|
+
class Error < T::Struct
|
|
24
|
+
extend T::Sig
|
|
25
|
+
|
|
26
|
+
# Shared/common fields
|
|
27
|
+
const :source, Source::Sidekiq, default: Source::Sidekiq
|
|
28
|
+
const :event, Event, default: Event::Error
|
|
29
|
+
const :timestamp, Time, factory: -> { Time.now }
|
|
30
|
+
const :level, Level, default: Level::Info
|
|
31
|
+
|
|
32
|
+
# Event-specific fields
|
|
33
|
+
const :error_class, T.class_of(Exception)
|
|
34
|
+
const :message, String
|
|
35
|
+
const :backtrace, T.nilable(T::Array[String]), default: nil
|
|
36
|
+
const :error_context, T.nilable(String), default: nil
|
|
37
|
+
const :queue_name, T.nilable(String), default: nil
|
|
38
|
+
const :retry_count, T.nilable(Integer), default: nil
|
|
39
|
+
|
|
40
|
+
# Additional data
|
|
41
|
+
include LogStruct::Log::Interfaces::AdditionalDataField
|
|
42
|
+
const :additional_data, T.nilable(T::Hash[T.any(String, Symbol), T.untyped]), default: nil
|
|
43
|
+
include LogStruct::Log::Shared::MergeAdditionalDataFields
|
|
44
|
+
|
|
45
|
+
# Serialize shared fields
|
|
46
|
+
include LogStruct::Log::Interfaces::CommonFields
|
|
47
|
+
include LogStruct::Log::Shared::SerializeCommon
|
|
48
|
+
|
|
49
|
+
sig { returns(T::Hash[LogStruct::LogField, T.untyped]) }
|
|
50
|
+
def to_h
|
|
51
|
+
h = T.let({}, T::Hash[LogStruct::LogField, T.untyped])
|
|
52
|
+
h[LogField::ErrorClass] = error_class
|
|
53
|
+
h[LogField::Message] = message
|
|
54
|
+
h[LogField::Backtrace] = backtrace unless backtrace.nil?
|
|
55
|
+
h[LogField::ErrorContext] = error_context unless error_context.nil?
|
|
56
|
+
h[LogField::QueueName] = queue_name unless queue_name.nil?
|
|
57
|
+
h[LogField::RetryCount] = retry_count unless retry_count.nil?
|
|
58
|
+
h
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
end
|
|
@@ -19,21 +19,26 @@ require_relative "../../enums/log_field"
|
|
|
19
19
|
|
|
20
20
|
module LogStruct
|
|
21
21
|
module Log
|
|
22
|
-
class
|
|
23
|
-
class
|
|
22
|
+
class Sidekiq
|
|
23
|
+
class Log < T::Struct
|
|
24
24
|
extend T::Sig
|
|
25
25
|
|
|
26
26
|
# Shared/common fields
|
|
27
|
-
const :source, Source::
|
|
28
|
-
const :event, Event, default: Event::
|
|
27
|
+
const :source, Source::Sidekiq, default: Source::Sidekiq
|
|
28
|
+
const :event, Event, default: Event::Log
|
|
29
29
|
const :timestamp, Time, factory: -> { Time.now }
|
|
30
30
|
const :level, Level, default: Level::Info
|
|
31
31
|
|
|
32
|
-
const :storage, Symbol
|
|
33
|
-
const :file_id, String
|
|
34
|
-
|
|
35
32
|
# Event-specific fields
|
|
36
|
-
const :
|
|
33
|
+
const :message, T.nilable(String), default: nil
|
|
34
|
+
const :context, T.nilable(T::Hash[Symbol, T.untyped]), default: nil
|
|
35
|
+
const :process_id, T.nilable(Integer), default: nil
|
|
36
|
+
const :thread_id, T.nilable(T.any(Integer, String)), default: nil
|
|
37
|
+
|
|
38
|
+
# Additional data
|
|
39
|
+
include LogStruct::Log::Interfaces::AdditionalDataField
|
|
40
|
+
const :additional_data, T.nilable(T::Hash[T.any(String, Symbol), T.untyped]), default: nil
|
|
41
|
+
include LogStruct::Log::Shared::MergeAdditionalDataFields
|
|
37
42
|
|
|
38
43
|
# Serialize shared fields
|
|
39
44
|
include LogStruct::Log::Interfaces::CommonFields
|
|
@@ -42,9 +47,10 @@ module LogStruct
|
|
|
42
47
|
sig { returns(T::Hash[LogStruct::LogField, T.untyped]) }
|
|
43
48
|
def to_h
|
|
44
49
|
h = T.let({}, T::Hash[LogStruct::LogField, T.untyped])
|
|
45
|
-
h[LogField::
|
|
46
|
-
h[LogField::
|
|
47
|
-
h[LogField::
|
|
50
|
+
h[LogField::Message] = message unless message.nil?
|
|
51
|
+
h[LogField::Context] = context unless context.nil?
|
|
52
|
+
h[LogField::ProcessId] = process_id unless process_id.nil?
|
|
53
|
+
h[LogField::ThreadId] = thread_id unless thread_id.nil?
|
|
48
54
|
h
|
|
49
55
|
end
|
|
50
56
|
end
|
|
@@ -4,49 +4,7 @@
|
|
|
4
4
|
# AUTO-GENERATED: DO NOT EDIT
|
|
5
5
|
# Generated by scripts/generate_structs.rb
|
|
6
6
|
# Schemas dir: schemas/log_sources/
|
|
7
|
-
# Template: tools/codegen/templates/sorbet/
|
|
7
|
+
# Template: tools/codegen/templates/sorbet/source_parent.rb.erb
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
require "log_struct/shared/interfaces/request_fields"
|
|
12
|
-
require "log_struct/shared/serialize_common"
|
|
13
|
-
require "log_struct/shared/merge_additional_data_fields"
|
|
14
|
-
require "log_struct/shared/add_request_fields"
|
|
15
|
-
require_relative "../enums/source"
|
|
16
|
-
require_relative "../enums/event"
|
|
17
|
-
require_relative "../enums/level"
|
|
18
|
-
require_relative "../enums/log_field"
|
|
19
|
-
|
|
20
|
-
module LogStruct
|
|
21
|
-
module Log
|
|
22
|
-
class Sidekiq < T::Struct
|
|
23
|
-
extend T::Sig
|
|
24
|
-
|
|
25
|
-
# Shared/common fields
|
|
26
|
-
const :source, Source::Sidekiq, default: Source::Sidekiq
|
|
27
|
-
const :event, Event, default: Event::Log
|
|
28
|
-
const :timestamp, Time, factory: -> { Time.now }
|
|
29
|
-
const :level, Level, default: Level::Info
|
|
30
|
-
|
|
31
|
-
# Event-specific fields
|
|
32
|
-
const :message, T.nilable(String), default: nil
|
|
33
|
-
const :context, T.nilable(T::Hash[Symbol, T.untyped]), default: nil
|
|
34
|
-
const :process_id, T.nilable(Integer), default: nil
|
|
35
|
-
const :thread_id, T.nilable(T.any(Integer, String)), default: nil
|
|
36
|
-
|
|
37
|
-
# Serialize shared fields
|
|
38
|
-
include LogStruct::Log::Interfaces::CommonFields
|
|
39
|
-
include LogStruct::Log::Shared::SerializeCommon
|
|
40
|
-
|
|
41
|
-
sig { returns(T::Hash[LogStruct::LogField, T.untyped]) }
|
|
42
|
-
def to_h
|
|
43
|
-
h = T.let({}, T::Hash[LogStruct::LogField, T.untyped])
|
|
44
|
-
h[LogField::Message] = message unless message.nil?
|
|
45
|
-
h[LogField::Context] = context unless context.nil?
|
|
46
|
-
h[LogField::ProcessId] = process_id unless process_id.nil?
|
|
47
|
-
h[LogField::ThreadId] = thread_id unless thread_id.nil?
|
|
48
|
-
h
|
|
49
|
-
end
|
|
50
|
-
end
|
|
51
|
-
end
|
|
52
|
-
end
|
|
9
|
+
require_relative "sidekiq/log"
|
|
10
|
+
require_relative "sidekiq/error"
|