Existe alguma maneira rápida de fazer com que o Chrome produza registros de data e hora em console.log
gravações (como o Firefox). Ou está anexando new Date().getTime()
a única opção?
javascript
google-chrome
Até o riacho
fonte
fonte
Respostas:
No Chrome, existe a opção Configurações do console (Ferramentas do desenvolvedor -> Console -> Configurações [canto superior direito]) chamado "Mostrar carimbos de data / hora", exatamente o que eu precisava.
Acabei de encontrar. Não são necessários outros hacks sujos que destruam espaços reservados e apaguem o código no qual as mensagens foram registradas.
Atualização para o Chrome 68 ou superior
A configuração "Mostrar timestamps" foi movida para o painel Preferences das "DevTools settings", localizado no canto superior direito da gaveta do DevTools:
fonte
Tente o seguinte:
Ou isso, caso você queira um carimbo de data / hora:
Para registrar mais de uma coisa e de uma maneira agradável (como a representação em árvore de objetos):
Com string de formato ( JSFiddle )
Saídas com isso:
PS: testado apenas no Chrome.
PPS:
Array.prototype.slice
não é perfeito aqui, pois seria registrado como uma matriz de objetos e não como uma série.fonte
Você pode usar o criador de ferramentas de ferramentas de desenvolvimento.
"Nome do temporizador" deve ser o mesmo. Você pode usar várias instâncias do timer com nomes diferentes.
fonte
console.timeStamp('foo')
um ponto amarelo na linha do tempo. Não funcionou para mim ao usar nomes com espaços tho.console.log
ou ao log de todosEu o adicionei originalmente como comentário, mas queria adicionar uma captura de tela porque pelo menos uma pessoa não conseguiu encontrar a opção (ou talvez ela não estivesse disponível em sua versão específica por algum motivo).
No Chrome 68.0.3440.106 (e agora registrada em 72.0.3626.121), tive que
fonte
Eu converto
arguments
para Matriz usandoArray.prototype.slice
para que eu possaconcat
com outra Matriz do que eu quero adicionar e depois a transmitoconsole.log.apply(console, /*here*/)
;Parece que também
arguments
pode serArray.prototype.unshift
editado, mas não sei se modificá-lo dessa maneira é uma boa ideia / terá outros efeitos colateraisfonte
+new Date
eDate.now()
são formas alternativas de obter registros de data e horafonte
Se você estiver usando o navegador Google Chrome, poderá usar a API do console do Chrome:
O tempo decorrido entre essas duas chamadas é exibido no console.
Para informações detalhadas, consulte o link do documento: https://developers.google.com/chrome-developer-tools/docs/console
fonte
No Chrome 68:
"Mostrar timestamps" movido para configurações
A caixa de seleção Mostrar carimbos de data e hora anteriormente em Configurações do console Configurações do console mudou para Configurações .
fonte
Tente também:
Esta função coloca o carimbo de data / hora, o nome do arquivo e o número da linha iguais aos incorporados
console.log
.fonte
log
função criada dessa maneira congela um carimbo de data / hora fixo; você teria que reexecutar isso toda vez que quiser uma hora atualizada [= data atualizada; -]. É possível tornar isso uma função, mas você teria que usá-lo como emmklog()(...)
vez delog()
.Se você deseja preservar as informações do número da linha (cada mensagem apontando para sua chamada .log (), nem todas apontando para o nosso invólucro), é necessário usar
.bind()
. Você pode anexar um argumento extra de registro de data e hora,console.log.bind(console, <timestamp>)
mas o problema é que você deve executá-lo novamente toda vez para vincular uma função a um registro de data e hora novo. Uma maneira estranha de fazer isso é uma função que retorna uma função vinculada:que deve ser usado com uma chamada dupla:
MAS podemos tornar implícita a primeira chamada instalando uma propriedade com a função getter:
Agora você acabou de ligar
console.log(...)
e automagicamente ele precede um carimbo de data e hora!Você pode até conseguir esse comportamento mágico com um simples, em
log()
vez deconsole.log()
fazerObject.defineProperty(window, "log", ...)
.Consulte https://github.com/pimterry/loglevel para obter um wrapper de console seguro bem-sucedido usando
.bind()
, com fallbacks de compatibilidade.Consulte https://github.com/eligrey/Xccessors para obter fallbacks de compatibilidade da API
defineProperty()
herdada__defineGetter__
. Se nenhuma API de propriedade funcionar, você deverá fazer o fallback para uma função de wrapper que receba um carimbo de data / hora novo sempre. (Nesse caso, você perde as informações do número da linha, mas os carimbos de data e hora ainda são exibidos.)Boilerplate: Hora de formatar da maneira que eu gosto:
fonte
Isso adiciona uma função "log" ao escopo local (usando
this
) usando quantos argumentos você desejar:Então você pode usá-lo:
Produz algo como isto:
fonte
estendeu a solução muito agradável "com string de formato" do JSmyth para também suportar
console.log
variações (log
,debug
,info
,warn
,error
)09:05:11.518
vs.2018-06-13T09:05:11.518Z
)console
ou suas funções não existem nos navegadores.
fonte
Utl.js
acima . permitindo assim (sob demanda comentando in / out) doUtl.consoleWithTimestamps(...)
-override pode fazer sentidoEu tenho isso na maioria dos aplicativos Node.JS. Também funciona no navegador.
fonte
Solução ES6:
onde
timestamp()
retorna o carimbo de data / hora realmente formatado elog
adiciona um carimbo de hora e propaga todos os seus próprios argumentos paraconsole.log
fonte
Um refinamento na resposta de JSmyth:
Este:
.log
fonte
console.log(document, window)
, ou seja, sem a suposição de string de formato, você obteria smth. como em2014-02-15T20:02:17.284Z > [object HTMLDocument] Window {…}
vez dedocument
ser representado como uma árvore de objetos expansível.