@@ -3,35 +3,21 @@ class LoggerClient
33
44 def initialize
55 @@errors_governor = Stackify ::ErrorsGovernor . new
6+ @@transport = Stackify ::TransportSelector . new ( Stackify . configuration . transport ) . transport
67 end
78
89 def log level , msg , call_trace
9- Stackify ::Utils . do_only_if_authorized_and_mode_is_on Stackify ::MODES [ :logging ] do
10- if acceptable? ( level , msg ) && Stackify . working?
11- worker = Stackify ::AddMsgWorker . new
12- task = log_message_task level , msg , call_trace
13- worker . async_perform ScheduleDelay . new , task
14- end
15- end
10+ task = log_message_task level , msg , call_trace
11+ @@transport . log level , msg , call_trace , task
1612 end
1713
1814 def log_exception level = :error , ex
19- if ex . is_a? ( Stackify ::StackifiedError )
20- Stackify ::Utils . do_only_if_authorized_and_mode_is_on Stackify ::MODES [ :logging ] do
21- if acceptable? ( level , ex . message ) && Stackify . working?
22- if @@errors_governor . can_send? ex
23- worker = Stackify ::AddMsgWorker . new
24- task = log_exception_task level , ex
25- worker . async_perform ScheduleDelay . new , task
26- else
27- Stackify . internal_log :warn ,
28- "LoggerClient: logging of exception with message \" #{ ex . message } \" is skipped - flood_limit is exceeded"
29- end
30- end
31- end
32- else
33- Stackify . log_internal_error 'LoggerClient: log_exception should get StackifiedError object'
34- end
15+ task = log_exception_task level , ex
16+ @@transport . log_exception level , ex , task
17+ end
18+
19+ def get_transport
20+ @@transport
3521 end
3622
3723 private
@@ -52,39 +38,11 @@ def is_correct_log_level? level
5238 end
5339
5440 def log_message_task level , msg , call_trace , trans_id = nil , log_uuid = nil
55- Stackify ::ScheduleTask . new ( { limit : 1 } ) do
56- if %w( error fatal ) . include? ( level )
57- ex = if ruby_exception? ( msg ) && msg . class != Class
58- msg . set_backtrace ( call_trace )
59- msg
60- else
61- e = StringException . new ( msg )
62- e . set_backtrace ( call_trace )
63- e
64- end
65- ex = StackifiedError . new ( ex , binding ( ) )
66- Stackify . msgs_queue << Stackify ::MsgObject . new ( level , ex . message , caller [ 0 ] , trans_id , log_uuid , ex ) . to_h
67- else
68- Stackify . msgs_queue << Stackify ::MsgObject . new ( level , msg , caller [ 0 ] , trans_id , log_uuid ) . to_h
69- end
70- end
41+ @@transport . log_message_task level , msg , call_trace , trans_id , log_uuid
7142 end
7243
7344 def log_exception_task level , ex , trans_id = nil , log_uuid = nil
74- Stackify ::ScheduleTask . new ( { limit : 1 } ) do
75- Stackify . msgs_queue << Stackify ::MsgObject . new ( level , ex . message , caller [ 0 ] , trans_id , log_uuid , ex ) . to_h
76- end
77- end
78-
79- def ruby_exception? klass
80- klass = klass . class == Class ? klass : klass . class
81- klasses = [ klass ]
82- while klass != Object do
83- klasses << klass . superclass
84- klass = klass . superclass
85- end
86- klasses . include? ( Exception )
45+ @@transport . log_exception_task level , ex , trans_id , log_uuid
8746 end
8847 end
89-
9048end
0 commit comments