Class: Temporalio::Internal::Worker::WorkflowInstance::ReplaySafeLogger

Inherits:
ScopedLogger
  • Object
show all
Defined in:
lib/temporalio/internal/worker/workflow_instance/replay_safe_logger.rb

Overview

Wrapper for a scoped logger that does not log on replay.

Instance Attribute Summary

Attributes inherited from ScopedLogger

#disable_scoped_values, #scoped_values_getter

Instance Method Summary collapse

Methods inherited from ScopedLogger

#debug, #error, #fatal, #info, #unknown, #warn

Constructor Details

#initialize(logger:, instance:) ⇒ ReplaySafeLogger

Returns a new instance of ReplaySafeLogger.



12
13
14
15
16
# File 'lib/temporalio/internal/worker/workflow_instance/replay_safe_logger.rb', line 12

def initialize(logger:, instance:)
  @instance = instance
  @replay_safety_disabled = false
  super(logger)
end

Instance Method Details

#addObject



25
26
27
28
29
30
31
32
# File 'lib/temporalio/internal/worker/workflow_instance/replay_safe_logger.rb', line 25

def add(...)
  if !@replay_safety_disabled && Temporalio::Workflow.in_workflow? && Temporalio::Workflow::Unsafe.replaying?
    return true
  end

  # Disable illegal call tracing for the log call
  @instance.illegal_call_tracing_disabled { super }
end

#replay_safety_disabledObject



18
19
20
21
22
23
# File 'lib/temporalio/internal/worker/workflow_instance/replay_safe_logger.rb', line 18

def replay_safety_disabled(&)
  @replay_safety_disabled = true
  yield
ensure
  @replay_safety_disabled = false
end