void ILogger.Log <TState>(Microsoft.Extensions.Logging.LogLevel logLevel, EventId eventId, TState state, Exception exception, Func <TState, Exception, string> formatter) { var parameters = state as LogEntryParameters ?? new ExternalLogEntryPerameters(); var entry = LogEntity.CreateWithoutRowKey( parameters.AppName, parameters.AppVersion, parameters.EnvInfo, GetLogLevelString(logLevel), _componentName, parameters.Process, parameters.Context, exception?.GetType().ToString(), exception?.ToAsyncString(), formatter(state, exception), parameters.Moment); _persistenceQueue.Enqueue(entry); }
private Task PersistEntriesGroup(IGrouping <string, LogEntity> group) { return(_storage.InsertBatchAndGenerateRowKeyAsync( group.ToArray(), (entity, retryNum, batchItemNum) => LogEntity.GenerateRowKey(entity.DateTime, batchItemNum, retryNum))); }
/// <inheritdoc /> public void Enqueue(LogEntity entry) { _batchBlock.Post(entry); }