Есть ли какой-нибудь быстрый способ заставить Chrome выводить метки времени при console.log
записи (как это делает Firefox). Или предваряет new Date().getTime()
единственный вариант?
javascript
google-chrome
UpTheCreek
источник
источник
Ответы:
В Chrome есть опция «Настройки консоли» («Инструменты разработчика» -> «Консоль» -> «Настройки» [верхний правый угол]) с именем «Показать метки времени», и это именно то, что мне нужно.
Я только что нашел это. Никакие другие грязные хаки не нужны, которые уничтожают заполнители и стирают место в коде, откуда сообщения были зарегистрированы.
Обновление для Chrome 68+
Параметр «Показать метки времени» был перемещен на панель «Настройки» раздела «Настройки DevTools», расположенного в верхнем правом углу панели DevTools:
источник
Попробуй это:
Или это, если вам нужна временная метка:
Для регистрации более чем одной вещи и хорошим способом (например, представление дерева объектов):
С форматной строкой ( JSFiddle )
Выходы с этим:
PS: проверено только в Chrome.
PPS:
Array.prototype.slice
здесь не идеально, так как он будет записан как массив объектов, а не как ряд объектов.источник
Вы можете использовать профилировщик Dev Tools.
«Имя таймера» должно быть одинаковым. Вы можете использовать несколько экземпляров таймера с разными именами.
источник
console.timeStamp('foo')
это просто выглядит как желтая точка на временной шкале. Это не сработало для меня при использовании имен с пробелами.console.log
лесозаготовкой или вообще на нееПервоначально я добавил это в качестве комментария, но я хотел добавить скриншот, так как по крайней мере один человек не мог найти эту опцию (или, возможно, она не была доступна в их конкретной версии по какой-то причине).
На Chrome 68.0.3440.106 (и теперь проверено в 72.0.3626.121) мне пришлось
источник
Преобразовать
arguments
в массив , используяArray.prototype.slice
так , что я могуconcat
с другим массивом того , что я хочу добавить, а затем передать его вconsole.log.apply(console, /*here*/)
;Кажется, это
arguments
тоже можноArray.prototype.unshift
отредактировать, но я не знаю, хорошая ли это модификация, если это так, / будет иметь другие побочные эффектыисточник
+new Date
иDate.now()
альтернативные способы получить метки времениисточник
Если вы используете браузер Google Chrome, вы можете использовать API консоли Chrome:
Истекшее время между этими двумя вызовами отображается в консоли.
Для получения подробной информации, пожалуйста, смотрите ссылку на документ: https://developers.google.com/chrome-developer-tools/docs/console
источник
Из Chrome 68:
«Показать метки времени» перенесено в настройки
Флажок Show timestamps ранее в Console Settings Настройки консоли был перенесен в Настройки .
источник
Попробуйте это также:
Эта функция помещает метку времени, имя файла и номер строки как встроенные
console.log
.источник
log
Созданная таким образом функция замораживает фиксированную метку времени; вам придется повторять это каждый раз, когда вы хотите, чтобы было обновлено время [= до даты Date; -]. Можно сделать это функцией, но вам придется использовать ееmklog()(...)
вместоlog()
.Если вы хотите сохранить информацию о номере строки (каждое сообщение указывает на свой вызов .log (), а не все указывает на нашу оболочку), вы должны использовать
.bind()
. Вы можете добавить дополнительный аргумент timestamp через,console.log.bind(console, <timestamp>)
но проблема в том, что вам нужно повторять это каждый раз, чтобы получить функцию, связанную с новой меткой времени. Неловкий способ сделать это - функция, которая возвращает связанную функцию:который затем должен использоваться с двойным вызовом:
НО мы можем сделать первый вызов неявным, установив свойство с помощью функции getter:
Теперь вы просто позвоните
console.log(...)
и автоматически добавляете метку времени!Вы можете даже достигнуть этого волшебного поведения с простым
log()
вместоconsole.log()
, чтобы делатьObject.defineProperty(window, "log", ...)
.Видеть Https://github.com/pimterry/loglevel для хорошо выполненного безопасного использования оболочки консоли
.bind()
с ошибками совместимости.См. Https://github.com/eligrey/Xccessors, чтобы узнать о возможностях восстановления совместимости с
defineProperty()
устаревшим__defineGetter__
API. Если ни одно из свойств API не работает, вам следует вернуться к функции-оболочке, которая каждый раз получает новую метку времени. (В этом случае вы потеряете информацию о номере строки, но отметки времени все равно будут отображаться.)Boilerplate: форматирование времени так, как мне нравится:
источник
Это добавляет функцию «log» в локальную область (используя
this
), используя столько аргументов, сколько вы хотите:Так что вы можете использовать это:
Выводит что-то вроде этого:
источник
расширил очень хорошее решение "с форматной строкой" от JSmyth, чтобы также поддерживать
console.log
варианты (log
,debug
,info
,warn
,error
)09:05:11.518
против2018-06-13T09:05:11.518Z
)console
его функции не существуют в браузерах,
источник
Utl.js
выше . так что включение (по требованию, комментированиеUtl.consoleWithTimestamps(...)
вход / выход) параметра override может иметь смыслУ меня есть это в большинстве приложений Node.JS. Это также работает в браузере.
источник
Решение ES6:
где
timestamp()
возвращает фактически отформатированную временную метку,log
добавляет временную метку и передает все собственные аргументыconsole.log
источник
Уточнение ответа JSmyth:
Это:
.log
источник
console.log(document, window)
, то есть без предположения строки формата, то вы получите что-то. как2014-02-15T20:02:17.284Z > [object HTMLDocument] Window {…}
вместо того,document
чтобы быть представленным в виде расширяемого дерева объектов.