/// <summary>
        /// See <see cref="ILogHelper.DefineFatalLogMessage"/> for more details.
        /// </summary>
        /// <param name="message">
        /// The message to be logged.
        /// </param>
        /// <param name="errorCategory">
        /// The specifics of the error origin.
        /// </param>
        /// <param name="errorType">
        /// The type of error being logged.
        /// </param>
        /// <param name="exception">
        /// The exception (if one exists) associated with the error.
        /// </param>
        /// <returns>
        /// A new, initalised <see cref="LogMessage"/> instance.
        /// </returns>
        public LogMessage DefineFatalLogMessage(string message, ErrorCategory errorCategory, ErrorType errorType, BaseException exception = null)
        {
            var logMessage = new LogMessage(TraceEventType.Critical);

            logMessage.Exception = exception;
            logMessage.Message = message;
            logMessage.ErrorCode = new ErrorCode(Severity.Critical, errorCategory, errorType);

            return logMessage;
        }
 /// <summary>
 /// Creates a formatted message for logging.
 /// </summary>
 /// <param name="message">
 /// The error message to log.
 /// </param>
 /// <param name="exception">
 /// Exception to be logged.
 /// </param>
 /// <returns>
 /// The error message
 /// </returns>
 private static string CreateLogMessage(string message, BaseException exception = null)
 {
     var logMessage = new StringBuilder(message);
     if (exception != null)
     {
         logMessage.Append(CnNewLine);
         logMessage.Append("Exception Details:");
         logMessage.Append(CnNewLine);
         logMessage.Append(BuildExceptionEntryText(exception, 0));
     }
     return logMessage.ToString();
 }