publish method

  1. @override
void publish(
  1. LogMessage message
)

Implementation

@override
void publish(LogMessage message) {
  local.publish(message);

  final pathInfo = <String, dynamic>{
    'api_request_id': Zone.current[#apiRequestId],
    'scheduler_execution_id': Zone.current[#schedulerExecutionId],
  }..removeWhere((key, value) => value == null);

  final logEvent = LogEventDto(
    serviceName: _serviceName,
    serviceInstance: _serviceInstance,
    level: message.level,
    timestamp: message.timestamp,
    message: message.message,
    path: pathInfo.cast<String, String>(),
    sender: message.sender,
    meta: {
      if (message.exception != null)
        'exception': message.exception.toString(),
      if (message.trace != null) 'trace': message.trace.toString(),
    },
  );

  _sendQueue.addLast(logEvent);
  _sendSemaphore.throttle(_workQueue);
}