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
-
.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.
141 142 143 144 145 146 147 148 149 150 151 152 |
# File 'lib/aws_lambda_ric.rb', line 141 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_std_logger mutate_kernel_puts rescue Errno::ENOENT, Errno::EBADF # If File.open() fails, then the mutation won't happen and the default behaviour (print to stdout) will prevail end |
Class Attribute Details
.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
136 137 138 |
# File 'lib/aws_lambda_ric.rb', line 136 def close telemetry_log_fd_file&.close end |
.from_env ⇒ Object
154 155 156 157 158 159 160 |
# File 'lib/aws_lambda_ric.rb', line 154 def self.from_env() if 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 end |