Existe-t-il un moyen rapide de faire en sorte que Chrome génère des horodatages en console.log
écriture (comme le fait Firefox)? Ou le pré-paiement est-il new Date().getTime()
la seule option?
javascript
google-chrome
Jusqu'à la crique
la source
la source
Réponses:
Dans Chrome, il y a l'option Paramètres de la console (Outils de développement -> Console -> Paramètres [coin supérieur droit]) nommée "Afficher les horodatages", ce qui est exactement ce dont j'avais besoin.
Je viens de le trouver. Aucun autre piratage sale nécessaire qui détruit les espaces réservés et efface la place dans le code d'où les messages ont été enregistrés.
Mise à jour pour Chrome 68+
Le paramètre "Afficher les horodatages" a été déplacé vers le volet Préférences des "Paramètres DevTools", situé dans le coin supérieur droit du tiroir DevTools:
la source
Essaye ça:
Ou ceci, au cas où vous voudriez un horodatage:
Pour enregistrer plus d'une chose et d'une manière agréable (comme la représentation d'arbre d'objets):
Avec chaîne de format ( JSFiddle )
Sorties avec ça:
PS: testé dans Chrome uniquement.
PPS:
Array.prototype.slice
n'est pas parfait ici car il serait consigné comme un tableau d'objets plutôt que comme une série de ceux de.la source
Vous pouvez utiliser le profileur d'outils de développement.
Le "nom du minuteur" doit être le même. Vous pouvez utiliser plusieurs instances de minuterie avec des noms différents.
la source
console.timeStamp('foo')
ça apparaît juste comme un point jaune dans la timeline. Cela n'a pas fonctionné pour moi lors de l'utilisation de noms avec des espaces.console.log
la journalisationJ'ai initialement ajouté cela en tant que commentaire, mais je voulais ajouter une capture d'écran car au moins une personne n'a pas pu trouver l'option (ou peut-être qu'elle n'était pas disponible dans leur version particulière pour une raison quelconque).
Sur Chrome 68.0.3440.106 (et maintenant enregistré 72.0.3626.121), j'ai dû
la source
Je me convertis
arguments
en tableau en utilisantArray.prototype.slice
afin que je puisseconcat
avec un autre tableau de ce que je veux ajouter, puis je le passeconsole.log.apply(console, /*here*/)
;Il semble que cela
arguments
puisse êtreArray.prototype.unshift
édité aussi, mais je ne sais pas si le modifier comme ceci est une bonne idée / aura d'autres effets secondairesla source
+new Date
etDate.now()
sont des moyens alternatifs pour obtenir des horodatagesla source
Si vous utilisez le navigateur Google Chrome, vous pouvez utiliser l'API de la console Chrome:
Le temps écoulé entre ces deux appels s'affiche dans la console.
Pour des informations détaillées, veuillez consulter le lien doc: https://developers.google.com/chrome-developer-tools/docs/console
la source
Depuis Chrome 68:
"Afficher les horodatages" déplacé vers les paramètres
La case à cocher Afficher les horodatages précédemment dans Paramètres de la console Paramètres de la console a été déplacée vers Paramètres .
la source
Essayez aussi ceci:
Cette fonction met l'horodatage, le nom de fichier et le numéro de ligne identiques à ceux intégrés
console.log
.la source
log
fonction créée de cette façon fige un horodatage fixe; vous devez relancer cette opération à chaque fois que vous souhaitez une heure à jour [= jusqu'à l'heure Date; -]. Il est possible d'en faire une fonction mais vous devrez l'utiliser commemklog()(...)
au lieu delog()
.Si vous souhaitez conserver les informations de numéro de ligne (chaque message pointant vers son appel .log (), pas tous pointant vers notre wrapper), vous devez utiliser
.bind()
. Vous pouvez ajouter un argument d'horodatage supplémentaire viaconsole.log.bind(console, <timestamp>)
mais le problème est que vous devez le réexécuter à chaque fois pour obtenir une fonction liée avec un nouvel horodatage. Une façon maladroite de le faire est une fonction qui renvoie une fonction liée:qui doit ensuite être utilisé avec un double appel:
MAIS nous pouvons rendre le premier appel implicite en installant une propriété avec la fonction getter:
Maintenant, il vous suffit d'appeler
console.log(...)
et automatiquement, il ajoute un horodatage!Vous pouvez même réaliser ce comportement magique avec un simple
log()
au lieu de leconsole.log()
faireObject.defineProperty(window, "log", ...)
.Voir https://github.com/pimterry/loglevel pour un wrapper de console sûr et bien fait utilisant
.bind()
, avec des solutions de secours de compatibilité.Voir https://github.com/eligrey/Xccessors pour les solutions de secours de compatibilité de l'
defineProperty()
ancienne__defineGetter__
API. Si aucune des API de propriété ne fonctionne, vous devez recourir à une fonction wrapper qui obtient un nouvel horodatage à chaque fois. (Dans ce cas, vous perdez les informations sur le numéro de ligne, mais les horodatages s'affichent toujours.)Boilerplate: Formatage de l'heure comme je l'aime:
la source
Cela ajoute une fonction "log" à la portée locale (en utilisant
this
) en utilisant autant d'arguments que vous le souhaitez:Vous pouvez donc l'utiliser:
Produit quelque chose comme ceci:
la source
étendu la très belle solution "avec chaîne de format" de JSmyth pour prendre également en charge
console.log
variations (log
,debug
,info
,warn
,error
)09:05:11.518
vs2018-06-13T09:05:11.518Z
)console
ou ses fonctions n'existent pas dans les navigateurs.
la source
Utl.js
dessus . donc permettre (commentaire à la demande in / out) duUtl.consoleWithTimestamps(...)
-override peut avoir un sensJe l'ai dans la plupart des applications Node.JS. Cela fonctionne également dans le navigateur.
la source
Solution ES6:
où
timestamp()
renvoie l'horodatage réellement formaté etlog
ajoute un horodatage et propage tous ses propres arguments àconsole.log
la source
Un raffinement sur la réponse de JSmyth:
Ce:
.log
la source
console.log(document, window)
, c'est-à-dire sans l'hypothèse de chaîne de format, vous obtiendrez smth. comme2014-02-15T20:02:17.284Z > [object HTMLDocument] Window {…}
au lieu d'document
être représenté comme un arbre d'objets extensible.