class TelemetryLogSink
Constants
- FRAME_BYTES
Public Class Methods
new(file:)
click to toggle source
TelemetryLogSink
implements the logging contract between runtimes and the platform. It implements a simple framing protocol so message boundaries can be determined. Each frame can be visualized as follows:
----------------------
————————-----------------------
| Frame Type - 4 bytes | Length (len) - 4 bytes | Message - 'len' bytes | ----------------------
————————-----------------------
The first 4 bytes indicate the type of the frame - log frames have a type defined as the hex value 0xa55a0001. The second 4 bytes should indicate the message's length. The next 'len' bytes contain the message. The byte order is big-endian.
# File lib/aws_lambda_ric/telemetry_log_sink.rb, line 20 def initialize(file:) @file = file end
Public Instance Methods
close()
click to toggle source
# File lib/aws_lambda_ric/telemetry_log_sink.rb, line 40 def close # do nothing end
reopen(log = nil)
click to toggle source
# File lib/aws_lambda_ric/telemetry_log_sink.rb, line 36 def reopen(log = nil) # do nothing end
write(msg)
click to toggle source
# File lib/aws_lambda_ric/telemetry_log_sink.rb, line 26 def write(msg) if @file.nil? || @file.closed? $stdout.write(msg) else @file.write(FRAME_BYTES) @file.write([msg.bytesize].pack('L>')) @file.write(msg) end end