¿Hay alguna forma rápida de hacer que Chrome muestre marcas de tiempo en console.log
escrituras (como lo hace Firefox)? ¿O es anteponer new Date().getTime()
la única opción?
javascript
google-chrome
Hasta el arroyo
fuente
fuente
Respuestas:
En Chrome, existe la opción Configuración de la consola (Herramientas para desarrolladores -> Consola -> Configuración [esquina superior derecha]) llamada "Mostrar marcas de tiempo", que es exactamente lo que necesitaba.
Lo acabo de encontrar. No se necesitan otros trucos sucios que destruyan los marcadores de posición y borren el lugar en el código desde donde se registraron los mensajes.
Actualización para Chrome 68+
La configuración "Mostrar marcas de tiempo" se ha movido al panel de Preferencias de la "Configuración de DevTools", que se encuentra en la esquina superior derecha del cajón DevTools:
fuente
Prueba esto:
O esto, en caso de que desee una marca de tiempo:
Para registrar más de una cosa y de una manera agradable (como la representación del árbol de objetos):
Con cadena de formato ( JSFiddle )
Salidas con eso:
PD: Probado solo en Chrome.
PPS:
Array.prototype.slice
no es perfecto aquí porque se registraría como una matriz de objetos en lugar de una serie de los de.fuente
Puedes usar herramientas de desarrollo de perfil.
El "nombre del temporizador" debe ser el mismo. Puede usar varias instancias de temporizador con diferentes nombres.
fuente
console.timeStamp('foo')
aparece como un punto amarillo en la línea de tiempo. No funcionó para mí cuando uso nombres con espacios aunque.console.log
el registro en absolutoOriginalmente agregué esto como un comentario, pero quería agregar una captura de pantalla ya que al menos una persona no pudo encontrar la opción (o tal vez no estaba disponible en su versión particular por alguna razón).
En Chrome 68.0.3440.106 (y ahora registrado en 72.0.3626.121) tuve que
fuente
Me convierto
arguments
a Array usandoArray.prototype.slice
para poderconcat
con otro Array de lo que quiero agregar, luego lo pasoconsole.log.apply(console, /*here*/)
;Parece que también
arguments
se puedeArray.prototype.unshift
editar, pero no sé si modificarlo así es una buena idea / tendrá otros efectos secundariosfuente
+new Date
yDate.now()
son formas alternativas de obtener marcas de tiempofuente
Si está utilizando el navegador Google Chrome, puede usar la API de la consola de Chrome:
El tiempo transcurrido entre estas dos llamadas se muestra en la consola.
Para obtener información detallada, consulte el enlace del documento: https://developers.google.com/chrome-developer-tools/docs/console
fuente
Desde Chrome 68:
"Mostrar marcas de tiempo" movido a la configuración
La casilla de verificación Mostrar marcas de tiempo previamente en Configuración de la consola Configuración de la consola se ha movido a Configuración .
fuente
Prueba esto también:
Esta función coloca la marca de tiempo, el nombre de archivo y el número de línea como los mismos que los incorporados
console.log
.fuente
log
función creada de esta manera congela una marca de tiempo fija; tendrías que volver a ejecutar esto cada vez que quieras una hora actualizada [= fecha actual; -]. Es posible hacer que esta sea una función, pero tendrías que usarla como enmklog()(...)
lugar delog()
.Si desea preservar la información del número de línea (cada mensaje apunta a su llamada .log (), no todos apuntan a nuestro contenedor), debe usar
.bind()
. Puede anteponer un argumento de marca de tiempo adicional a través de,console.log.bind(console, <timestamp>)
pero el problema es que necesita volver a ejecutar esto cada vez para obtener una función vinculada con una nueva marca de tiempo. Una forma incómoda de hacerlo es una función que devuelve una función enlazada:que luego debe usarse con una doble llamada:
PERO podemos hacer la primera llamada implícita instalando una propiedad con la función getter:
¡Ahora solo llama
console.log(...)
y automágicamente antepone una marca de tiempo!Incluso puede lograr este comportamiento mágico con un simple en
log()
lugar deconsole.log()
hacerloObject.defineProperty(window, "log", ...)
.Consulte https://github.com/pimterry/loglevel para obtener una envoltura de consola segura bien hecha, con fallos de
.bind()
compatibilidad.Consulte https://github.com/eligrey/Xccessors para ver los retrocesos de compatibilidad de la API
defineProperty()
heredada__defineGetter__
. Si ninguna de las API de propiedades funciona, debería recurrir a una función de contenedor que obtenga una nueva marca de tiempo cada vez. (En este caso, pierde la información del número de línea, pero aún se mostrarán las marcas de tiempo).Boilerplate: Formateo de tiempo como a mí me gusta:
fuente
Esto agrega una función "log" al ámbito local (usando
this
) usando tantos argumentos como desee:Para que pueda usarlo:
Produce algo como esto:
fuente
extendió la muy buena solución "con formato de cadena" de JSmyth para admitir también
console.log
variaciones (log
,debug
,info
,warn
,error
)09:05:11.518
.2018-06-13T09:05:11.518Z
)console
sus funciones no existan en los navegadores.
fuente
Utl.js
anterior . entonces habilitar (comentar bajo demanda dentro / fuera) de laUtl.consoleWithTimestamps(...)
anulación puede tener sentidoTengo esto en la mayoría de las aplicaciones Node.JS. También funciona en el navegador.
fuente
Solución ES6:
donde
timestamp()
devuelvelog
una marca de tiempo formateada y agrega una marca de tiempo y propaga todos los argumentos propios aconsole.log
fuente
Un refinamiento en la respuesta de JSmyth:
Esta:
.log
fuente
console.log(document, window)
, es decir, sin el supuesto de formato de cadena, obtendría algo.2014-02-15T20:02:17.284Z > [object HTMLDocument] Window {…}
Me gusta en lugar dedocument
ser representado como un árbol de objetos expandible.