Sentry-javascript: Qual é o problema com wrapConsoleMethod ()?

Criado em 17 mai. 2016  ·  15Comentários  ·  Fonte: getsentry/sentry-javascript

Percebi recentemente que o raven agora envolve todos os métodos do console, mas não vejo nenhuma documentação que descreva por quê? ou como isso poderia ser útil? Alguém já descobriu isso e poderia me indicar alguma documentação sobre seu uso?

o problema que encontro é que não consigo mais fazer uma depuração simples com console.log () .. a fonte se torna raven.js e não consigo mais rastrear de onde ela está saindo do meu código?

Postado originalmente no repositório de documentos, depois fechado

Comentários muito úteis

A partir da versão 3.5.0, você pode desativar a coleta automática de trilhas de navegação do console:

Raven.config('your dsn', {
  autoBreadcrumbs: {
    console: false
  }
});

Ou você pode desativar a coleta automática de breadcrumb inteiramente:

Raven.config('your dsn', { autoBreadcrumbs: false });

Mais sobre isso em docs .

Todos 15 comentários

@grapho - as instruções do console são coletadas e passadas como breadcrumbs .

Posso ver como pode ser irritante que, como resultado da instrumentação de console.log , a URL em devtools não irá mais levá-lo para a instrução de log original em sua fonte. Poderíamos tornar a instrumentação console.log opcional. Ou, alternativamente, introduza Raven.log como uma API alternativa para gravar suas próprias migalhas de pão.

@benvinegar Eu prometo que não estou irritado ... se houver uma maneira de usar o breadcrumbs ou uma API equivalente em um ambiente de desenvolvimento .. lugar de console.log, eu adoraria saber como?

eu poderia me acostumar a colocar pontos de interrupção e instruções de depurador em vez disso ... se essa for a solução alternativa?

Acho que raramente usei o link para a instrução do console e nem percebi que ele havia sumido :) Eu pessoalmente uso o depurador do Chrome na maior parte do tempo.

se há uma maneira de usar o breadcrumbs ou uma API equivalente em um ambiente de desenvolvimento

Você pode usar Raven.captureBreadcrumb hoje se quiser apenas definir uma localização atual. A API ainda não está realmente desenvolvida. Este ainda é um recurso novo e ainda estamos tentando trabalhar alguns bits.

Se este não for um bloqueador sério, gostaria de manter este problema aberto um pouco e ver se recebemos mais feedback.

Acho que esse é um problema importante, especialmente porque não está documentado em lugar nenhum e não pode ser desativado.
Pode haver toneladas de console.log que não queremos enviar para o Sentry.

Cabe ao desenvolvedor escolher o que enviar e quando

Mais uma coisa que não mencionei, alguns frameworks JS, como Ember.js, tendem a retirar os métodos console () dos builds de produção. Apenas comida para consideração.

o comentário acima parece estar incorreto, desculpe.

@benvinegar Agradeço que você esteja disposto a manter o tíquete aberto, pode valer a pena investigar mais um pouco :)

@benvinegar, esse problema não é um bloqueador sério.

Aqui está minha solução atual. Percebi que simplesmente _não_ posso inicializar o cliente raven.js quando em modo de desenvolvimento ... relatórios raven / sentry, só são realmente úteis para a maioria das pessoas (imagino) em aplicativos de produção.

Dito isso. ainda pode haver alguma utilidade em introduzir talvez um sinalizador developmentMode config, que permitiria que mensagens e erros passassem para o console dev (também conhecido como desabilitar alguns dos manuseios "globais") .. enquanto mantém o raven. O cliente js fica quieto em segundo plano, então ainda podemos enviar relatórios de erro manualmente, acionando explicitamente o raven apis, se desejarmos.

Deixe-me saber como você se sente sobre isso. Caso contrário, eu não me preocuparia muito com isso, já que esse problema foi causado principalmente por minha inexperiência com o raven e como / quando usá-lo.

Pode haver toneladas de console.log que não queremos enviar para o Sentry.

Falar sério - você realmente deseja desativar isso? Não estou tentando parecer passivo-agressivo aqui, só quero saber se este é um problema sério no momento e se você deseja desativá-lo.

Eu acho que este é um problema importante, especialmente que não está documentado em nenhum lugar e

Ele está documentado no changelog Raven.js. Também publicamos uma postagem de blog anunciando breadcrumbs que menciona que console.log extratos agora estão registrados e esta postagem foi transmitida no aplicativo para todos os usuários Sentry hospedados. Lamento que não tenhamos conseguido entrar em contato com você, mas acho que um esforço genuíno foi feito para comunicar isso.

Observe também que é por isso que Raven.js 3.0.x foi um grande problema de versão, porque introduziu alterações potencialmente significativas. Espero que as pessoas estejam revisando o changelog antes de atualizar para uma versão principal.

... não pode ser desativado.

Enquanto isso, você ainda pode executar o Raven 2.x.

@benvinegar Agradeço que você esteja disposto a manter o tíquete aberto, pode valer a pena investigar mais um pouco :)

Quero coletar mais feedback antes de me apressar em uma solução. Especialmente porque o 3.0.x está no ar há algumas semanas e a maior parte do feedback que recebemos foi positivo.

@benvinegar, esse problema não é um bloqueador sério.

Sim, tive a sensação de que você estava curioso mais do que tudo.

Dito isso. ainda pode haver alguma utilidade na introdução de talvez um sinalizador de configuração developmentMode, que permitiria que mensagens e erros passassem para o console dev (também conhecido como desabilitar parte do manuseio "global") .. enquanto mantém o cliente raven.js quieto no fundo, para que ainda possamos enviar relatórios de erro manualmente, acionando explicitamente o raven apis, se desejarmos.

Sim, o problema com isso é que há um argumento para querer as instruções do console em produção para depuração também. Prefiro apenas torná-lo configurável. E nós vamos. Eu só quero obter mais feedback / medir o impacto primeiro.

Anwyays, agradeço seus comentários aqui, realmente.

@benvinegar : 👍 para opção de configuração - de preferência permitindo filtrar entradas indesejadas manualmente (ou melhor, por função)

Isso continua surgindo no rastreador de suporte também. Acho que devemos adicionar um método para desativá-lo.

Torne o recurso breadcrumbs opcional, envolver métodos de console é arriscado e sujeito a conflitos com muitas outras bibliotecas e scripts de terceiros que também tentam.

A partir da versão 3.5.0, você pode desativar a coleta automática de trilhas de navegação do console:

Raven.config('your dsn', {
  autoBreadcrumbs: {
    console: false
  }
});

Ou você pode desativar a coleta automática de breadcrumb inteiramente:

Raven.config('your dsn', { autoBreadcrumbs: false });

Mais sobre isso em docs .

autoBreadcrumbs não existe no arquivo de declaração datilografado. É intencional?

https://github.com/getsentry/raven-js/blob/master/typescript/raven.d.ts

Temos lutado com as declarações do TypeScript recentemente. As inscrições são bem-vindas.

Esta página foi útil?
0 / 5 - 0 avaliações