Class: AwsLambdaRIC::TelemetryLogger
- Inherits:
-
Object
- Object
- AwsLambdaRIC::TelemetryLogger
- Defined in:
- lib/aws_lambda_ric.rb
Overview
Helper class to for mutating std logger with TelemetryLog
Constant Summary collapse
- ENV_VAR_TELEMETRY_LOG_FD =
'_LAMBDA_TELEMETRY_LOG_FD'
Class Attribute Summary collapse
-
.logger_patch_applied ⇒ Object
Returns the value of attribute logger_patch_applied.
-
.telemetry_log_fd_file ⇒ Object
Returns the value of attribute telemetry_log_fd_file.
-
.telemetry_log_sink ⇒ Object
Returns the value of attribute telemetry_log_sink.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(telemetry_log_fd) ⇒ TelemetryLogger
constructor
A new instance of TelemetryLogger.
Constructor Details
#initialize(telemetry_log_fd) ⇒ TelemetryLogger
Returns a new instance of TelemetryLogger.
150 151 152 153 154 155 156 157 158 159 160 161 162 |
# File 'lib/aws_lambda_ric.rb', line 150 def initialize(telemetry_log_fd) fd = telemetry_log_fd.to_i AwsLambdaRIC::TelemetryLogger.telemetry_log_fd_file = IO.new(fd, 'wb') AwsLambdaRIC::TelemetryLogger.telemetry_log_fd_file.sync = true AwsLambdaRIC::TelemetryLogger.telemetry_log_sink = TelemetryLogSink.new(file: AwsLambdaRIC::TelemetryLogger.telemetry_log_fd_file) mutate_kernel_puts rescue Errno::ENOENT, Errno::EBADF AwsLambdaRIC::TelemetryLogger.telemetry_log_fd_file = nil AwsLambdaRIC::TelemetryLogger.telemetry_log_sink = nil end |
Class Attribute Details
.logger_patch_applied ⇒ Object
Returns the value of attribute logger_patch_applied.
134 135 136 |
# File 'lib/aws_lambda_ric.rb', line 134 def logger_patch_applied @logger_patch_applied end |
.telemetry_log_fd_file ⇒ Object
Returns the value of attribute telemetry_log_fd_file.
134 135 136 |
# File 'lib/aws_lambda_ric.rb', line 134 def telemetry_log_fd_file @telemetry_log_fd_file end |
.telemetry_log_sink ⇒ Object
Returns the value of attribute telemetry_log_sink.
134 135 136 |
# File 'lib/aws_lambda_ric.rb', line 134 def telemetry_log_sink @telemetry_log_sink end |
Class Method Details
.close ⇒ Object
135 136 137 138 |
# File 'lib/aws_lambda_ric.rb', line 135 def close telemetry_log_fd_file&.close self.telemetry_log_fd_file = nil end |
.from_env ⇒ Object
164 165 166 167 168 169 170 171 172 173 174 175 |
# File 'lib/aws_lambda_ric.rb', line 164 def self.from_env() LoggerPatch.refresh_runtime_config! mutate_std_logger AwsLambdaRIC::TelemetryLogger.telemetry_log_sink = nil return unless ENV.key?(ENV_VAR_TELEMETRY_LOG_FD) fd = ENV.fetch(AwsLambdaRIC::TelemetryLogger::ENV_VAR_TELEMETRY_LOG_FD) ENV.delete(AwsLambdaRIC::TelemetryLogger::ENV_VAR_TELEMETRY_LOG_FD) AwsLambdaRIC::TelemetryLogger.new(fd) end |
.mutate_std_logger ⇒ Object
140 141 142 143 144 145 146 147 |
# File 'lib/aws_lambda_ric.rb', line 140 def mutate_std_logger return if logger_patch_applied Logger.class_eval do prepend LoggerPatch end self.logger_patch_applied = true end |