Jak wydrukować komunikat do konsoli błędów, najlepiej ze zmienną?
Na przykład coś takiego:
print('x=%d', x);
javascript
debugging
Mark Harrison
źródło
źródło
Odpowiedzi:
Zainstalować Firebug , a następnie można użyć
console.log(...)
iconsole.debug(...)
, itd. (Patrz dokumentację na więcej).źródło
console.log()
itp. Powinny działać we wszystkich przeglądarkach, w tym IE. Jednak we wszystkich przypadkach musisz mieć otwarte okno debugera, w przeciwnym razie wywołaniaconsole
będą generować błędy.Możesz także dodać CSS do swoich wiadomości logowania:
źródło
console.log
możesz używać css wewnątrz konsoli: |Wyjątki są rejestrowane w konsoli JavaScript. Możesz go użyć, jeśli chcesz wyłączyć Firebug .
Stosowanie:
źródło
throw
należy je owinąćsetTimeout
?Jeden dobry sposób, aby to zrobić, działający w różnych przeglądarkach, został opisany w Debugowaniu JavaScript: Odrzuć swoje alerty! .
źródło
throw()
zdecydowanie nie jest na to sposobem. wcześniej czy później wpadniesz w kłopoty. dla mnie było to wcześniej :(Oto rozwiązanie dosłownego pytania o to, jak wydrukować komunikat na konsoli błędów przeglądarki, a nie konsoli debuggera. (Mogą istnieć dobre powody, aby ominąć debugger).
Jak zauważyłem w komentarzach dotyczących sugestii, aby zgłosić błąd, aby uzyskać komunikat w konsoli błędów, jednym problemem jest to, że przerwie to wątek wykonania. Jeśli nie chcesz przerywać wątku, możesz wrzucić błąd do osobnego wątku, utworzonego przy użyciu setTimeout. Stąd moje rozwiązanie (które okazuje się być opracowaniem Ivo Danihelki):
Uwzględniam czas w milisekundach od czasu rozpoczęcia, ponieważ limit czasu może zniekształcić kolejność wyświetlania komunikatów.
Drugi argument metody Error dotyczy nazwy pliku, która jest tutaj pustym ciągiem, aby zapobiec wyświetlaniu niepotrzebnej nazwy pliku i numeru wiersza. Możliwe jest uzyskanie funkcji dzwoniącego, ale nie w prosty, niezależny od przeglądarki sposób.
Byłoby miło, gdybyśmy mogli wyświetlić wiadomość z ikoną ostrzeżenia lub wiadomości zamiast ikony błędu, ale nie mogę znaleźć sposobu, aby to zrobić.
Innym problemem związanym z użyciem rzutu jest to, że może zostać złapany i wyrzucony przez otaczający try-catch, a umieszczenie rzutu w oddzielnym wątku pozwala również uniknąć tej przeszkody. Istnieje jednak jeszcze inny sposób na wychwycenie błędu, czyli zastąpienie modułu obsługi window.onerror programem, który robi coś innego. Nie mogę ci tam pomóc.
źródło
Jeśli korzystasz z Safari , możesz pisać
i pojawia się bezpośrednio na konsoli przeglądarki.
źródło
console.log()
.console.log()
. Do niedawna tak nie było.Aby odpowiedzieć na pytanie:
Zamiast błędu możesz także użyć informacji, zalogować się lub ostrzec.
źródło
console.error(..)
jest to niestandardowa funkcja i nie należy jej używać w produkcji. Jakie jest twoje zdanie? Czy masz jakieś sugestie dotyczące początkującego programisty używającegoconsole.error
vsconsole.log
?console.log(...)
„niestandardowe”. Pod tym względemconsole.error
jest tak stabilny jakconsole.log
.Jeśli używasz Firebug i potrzebujesz obsługi IE, Safari lub Opera, Firebug Lite dodaje obsługę console.log () do tych przeglądarek.
źródło
WebKit Web Inspector obsługuje również Firebug w konsoli API (tylko niewielkim dodatkiem do odpowiedzi Dana ).
źródło
Uwaga na temat wspomnianego wyżej „throw ()”. Wygląda na to, że całkowicie zatrzymuje wykonywanie strony (sprawdziłem w IE8), więc nie jest to bardzo przydatne do rejestrowania „trwających procesów” (np. Do śledzenia pewnej zmiennej ...)
Moją sugestią jest być może dodanie elementu textarea gdzieś w twoim dokumencie i zmiana (lub dołączenie) jego wartości (która zmieniłaby jego tekst) do rejestrowania informacji w razie potrzeby ...
źródło
console.log()
,throw()
itp. Ponadto nie ma nic złego w zachowaniu,throw()
jak się wydaje, że sugerujesz - fakt, że zatrzymuje on wykonywanie jest celowe i udokumentowane ( programista. mozilla.org/en-US/docs/Web/JavaScript/Reference/… ) i jest zgodny z tym, jak wyjątki są zgłaszane / wychwytywane w innych językach programowania. (Jeśli chcesz zalogować zawartość zmiennej bez zatrzymywania wykonywania, to jest to po coconsole.log()
.)console.log
- więc ludzie dawali alternatywy. Othrow()
zatrzymaniu egzekucji, oczywiście jest to celowe, nikt nie powiedział, że nie. Dlatego zazwyczaj nie jest to dobry sposób na rejestrowanie informacji debugowania w środowisku wykonawczym, czego chciał POJak zawsze, Internet Explorer jest wielkim słoniem w rolkach, który po prostu Cię zatrzymuje
console.log()
.Dziennik jQuery można dość łatwo dostosować, ale trzeba go wszędzie dodawać. Jednym z rozwiązań, jeśli używasz jQuery, jest umieszczenie go w pliku jQuery na końcu, najpierw:
źródło
Odwiedź https://developer.chrome.com/devtools/docs/console-api, aby uzyskać pełne odniesienie do interfejsu API konsoli
W takim przypadku obiekt będzie ciągiem błędów
źródło
źródło
pracuje dla mnie .. szukam tego .. korzystałem z Firefoksa. oto mój skrypt.
działa w Firefox i Chrome.
źródło
Najprostszym sposobem na to jest:
źródło
Aby odpowiedzieć na twoje pytanie, możesz użyć funkcji ES6,
źródło
To nie jest drukowane w konsoli, ale otworzy Ci się wyskakujące okienko z komunikatem, które może być przydatne w przypadku niektórych debugowania:
po prostu zrób:
źródło
Dzięki składni es6 możesz użyć:
źródło