Example #1
0
        public override void LogOneEntry(string client, string tenantId, string correlationId, ExecutionLog.EventType eventType, string tag, string contextData, Exception exception, params KeyValuePair <string, object>[] customData)
        {
            LogRowFormatter logRowFormatter = new LogRowFormatter(this.logSchema);
            Stream          stream          = null;

            logRowFormatter[1] = client;
            logRowFormatter[2] = tenantId;
            logRowFormatter[3] = correlationId;
            logRowFormatter[4] = eventType;
            logRowFormatter[5] = tag;
            logRowFormatter[6] = contextData;
            CustomDataLogger.Log(customData, logRowFormatter, out stream);
            if (exception != null)
            {
                List <string> list  = null;
                List <string> list2 = null;
                string        value = null;
                ExecutionLog.GetExceptionTypeAndDetails(exception, out list, out list2, out value, false);
                logRowFormatter[7] = list[0];
                logRowFormatter[8] = list2[0];
                if (list.Count > 1)
                {
                    logRowFormatter[9]  = list[list.Count - 1];
                    logRowFormatter[10] = list2[list2.Count - 1];
                }
                if (!ExExecutionLog.ShouldSkipExceptionChainLogging(list))
                {
                    logRowFormatter[11] = value;
                }
                logRowFormatter[12] = exception.GetHashCode().ToString();
            }
            this.logInstance.Append(logRowFormatter, 0);
            if (stream != null)
            {
                try
                {
                    logRowFormatter.Write(stream);
                }
                catch (StorageTransientException)
                {
                }
                catch (StoragePermanentException)
                {
                }
            }
        }