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"); }
/// <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); } }
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"); }