lib/aws_lambda_ric/telemetry_log_sink.rb
# 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.
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.
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 .
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
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
TelemetryLogSink implements the logging contract between runtimes and the platform.
TelemetryLogSink implements the logging contract between runtimes and the platform .
msg