Ejemplo n.º 1
0
        /// <summary>
        /// Writes structured data to the log with the specified severity and data of the sender.
        /// </summary>
        /// <typeparam name="T">The type of data to write.</typeparam>
        /// <param name="logLevel">The severity of the data.</param>
        /// <param name="objectToSend">The data to log.</param>
        /// <param name="senderDetails">Object containing data of the sender.</param>
        public void Write <T>(LogLevel logLevel, T objectToSend, LoggerContext senderDetails)
        {
            var eventType = logLevel.ToTraceEventType();

            if (eventType == null)
            {
                return;
            }

            if (senderDetails.HasCustomerId() && senderDetails.HasSessionId())
            {
                Write(eventType.Value, new CustomerLogData(objectToSend, senderDetails.CustomerId, senderDetails.SessionId));
            }
            else if (senderDetails.HasCustomerId())
            {
                Write(eventType.Value, new CustomerLogData(objectToSend, senderDetails.CustomerId));
            }
            else if (senderDetails.HasSessionId())
            {
                Write(eventType.Value, new CustomerLogData(objectToSend, senderDetails.SessionId));
            }
            else
            {
                Write(eventType.Value, objectToSend);
            }
        }