Пример #1
0
        /// <summary>
        /// Записать исключение в лог.
        /// </summary>
        /// <param name="exception">Логируемое исключение</param>
        /// <param name="logShortMessage">Дополнительное сообщение для логгера. Может быть пустым</param>
        /// <typeparam name="TLoggerClass">Класс логгера</typeparam>
        private static void LogException <TLoggerClass>(Exception exception, LogShortMessage logShortMessage = default)
            where TLoggerClass : class
        {
            ILogger <TLoggerClass> logger = ServiceMethod.LoggerFactory.CreateLogger <TLoggerClass>();

            List <object> @params = new List <object>();
            string        message = "Ошибка выполнения. Exception: {Exception}.";

            if (!logShortMessage.Equals(default(LogShortMessage)))
            {
                message = logShortMessage.Message + Environment.NewLine +
                          "Ошибка выполнения. Exception: {Exception}.";

                if ((logShortMessage.Params?.Length ?? 0) > 0)
                {
                    @params.AddRange(logShortMessage.Params);
                }
            }
            @params.Add(exception);

            logger.LogError(message, @params.ToArray());
        }