Exemple #1
0
        private void InitBuffer(LoggerOptions options)
        {
            DebuggingLogger?.Debug("InitBuffer");

            messagesQueue = new BufferWithFifoEviction <string>(
                options.MaxQueueSizeBytes,
                new StringLengthCostAssigner(),
                DebuggingLogger);

            flushBufferTask = new SumoLogicMessageSenderBufferFlushingTask(
                messagesQueue,
                SumoLogicMessageSender,
                options.MaxFlushInterval,
                options.MessagesPerRequest,
                options.SourceName,
                options.SourceCategory,
                options.SourceHost,
                DebuggingLogger);

            flushBufferTimer = new Timer(
                callback: async _ => await flushBufferTask.Run(),
                state: null,
                dueTime: TimeSpan.FromMilliseconds(0),
                period: options.FlushingAccuracy);

            DebuggingLogger?.Debug("InitBuffer::Completed");
        }
Exemple #2
0
        /// <summary>
        /// Write a single message line to Sumo Logic
        /// </summary>
        /// <param name="message">the message line to be sent</param>
        /// <param name="categoryName">not used for now</param>
        public void WriteLine(String message, String categoryName)
        {
            if (null == message)
            {
                return;
            }

            if (SumoLogicMessageSender == null || !SumoLogicMessageSender.CanTrySend)
            {
                DebuggingLogger?.Warn("Sender is not initialized. Dropping log entry");
                return;
            }

            String line = string.Concat(
                message.TrimEnd(Environment.NewLine.ToCharArray()),
                Environment.NewLine);

            if (LoggerOptions.IsBuffered)
            {
                messagesQueue.Add(line);
            }
            else
            {
                WriteLineToSumo(line);
            }
        }
Exemple #3
0
 private void InitSender(LoggerOptions options)
 {
     DebuggingLogger?.Debug("InitSender");
     SumoLogicMessageSender = new SumoLogicMessageSender(options.HttpMessageHandler, DebuggingLogger, "asp.net-core-logger")
     {
         Url = new Uri(options.Uri),
         ConnectionTimeout = options.ConnectionTimeout,
         RetryInterval     = options.RetryInterval
     };
     DebuggingLogger?.Debug("InitSender::Completed");
 }