#pragma warning disable CC0091 // Use static method
        public bool InsertLog(LogEvento log)
#pragma warning restore CC0091 // Use static method
        {
            var command   = $@"INSERT INTO event_log (id_evento, log_level, mensagem, data_criacao) VALUES (@id_evento, @log_level, @mensagem, @data_criacao)";
            var paramList = new List <NpgsqlParameter>
            {
                new NpgsqlParameter("id_evento", log.EventId),
                new NpgsqlParameter("log_level", log.LogLevel),
                new NpgsqlParameter("mensagem", log.Message),
                new NpgsqlParameter("data_criacao", log.CreatedTime)
            };

            return(ExecuteNonQuery(command, paramList));
        }
        public void Log <TState>(LogLevel logLevel, EventId eventoId,
                                 TState state, Exception exception, Func <TState, Exception, string> formato)
        {
            try
            {
                if (!IsEnabled(logLevel))
                {
                    return;
                }

                if (formato == null)
                {
                    throw new ArgumentNullException(nameof(formato));
                }

                var mensagem = formato?.Invoke(state, exception);
                if (string.IsNullOrEmpty(mensagem))
                {
                    return;
                }

                if (exception != null)
                {
                    mensagem += $"\n{exception.ToString()}";
                }

                mensagem = mensagem.Length > _messageMaxLength?mensagem.Substring(0, _messageMaxLength) : mensagem;

                var eventLog = new LogEvento
                {
                    Message     = mensagem,
                    EventId     = eventoId.Id,
                    LogLevel    = logLevel.ToString(),
                    CreatedTime = DateTime.UtcNow
                };

                _repositorio.InsertLog(eventLog);
            }
            finally
            {
            }
        }