Czy ktoś zna sposób na zapisanie danych wyjściowych console.log w przeglądarce Chrome do pliku? Albo jak skopiować tekst z konsoli?
Załóżmy, że przeprowadzasz kilka godzin testów funkcjonalnych i masz tysiące wierszy danych wyjściowych console.log w przeglądarce Chrome. Jak go zapisać lub wyeksportować?
google-chrome
console
logging
eeejay
źródło
źródło
Odpowiedzi:
Musiałem zrobić to samo i oto rozwiązanie, które znalazłem:
Włącz logowanie z wiersza poleceń za pomocą flag:
--enable-logging --v=1
To rejestruje wszystko, co Chrome robi wewnętrznie, ale także rejestruje wszystkie
console.log()
wiadomości. Plik dziennika jest wywoływanychrome_debug.log
i znajduje się wUser Data Directory
.Przefiltruj otrzymany plik dziennika pod kątem wierszy z
CONSOLE(\d+)
.Zauważ, że dzienniki konsoli nie pojawiają się z
--incognito
.źródło
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --enable-logging --v=1
z logiem zapisanym w~/Library/Application Support/Google/Chrome/chrome_debug.log
console.log()
linie nie są nigdzie w tym pliku. Czy ktoś ma na to rozwiązanie?Dobre wieści
Narzędzia deweloperskie Chrome pozwalają teraz zapisywać dane wyjściowe konsoli do pliku natywnie
Instrukcje dla programistów Chrome tutaj .
źródło
{a: 1, b: 2, c: 3, ...}
.Istnieje wtyczka javascript typu open source, która właśnie to robi, ale dla każdej przeglądarki - debugout.js
Debugout.js rejestruje i zapisuje console.logs, aby aplikacja miała do nich dostęp. Pełne ujawnienie, napisałem to. Odpowiednio formatuje różne typy, obsługuje zagnieżdżone obiekty i tablice oraz opcjonalnie może umieścić znacznik czasu obok każdego dziennika. Możesz także przełączyć rejestrowanie na żywo w jednym miejscu i bez konieczności usuwania wszystkich instrukcji logowania.
źródło
Znalazłem na to świetny i łatwy sposób.
W konsoli - kliknij prawym przyciskiem obiekt zalogowany w konsoli
Kliknij „Zapisz jako zmienną globalną”
Zobacz nazwę nowej zmiennej - np. Jest to nazwa_zmiennej1
Wpisz w konsoli: JSON.stringify (nazwa_zmiennej1)
Skopiuj zawartość ciągu zmiennej: np. {"A": 1, "b": 2, "c": 3}
źródło
Aby uzyskać lepszy plik dziennika (bez bzdur z debugowaniem Chrome), użyj:
zamiast tego
--v=1
jest po prostu za dużo informacji.Nadal będzie wyświetlać błędy i ostrzeżenia, które zwykle pojawiają się w konsoli Chrome.
aktualizacja z 18 maja 2020 r .: Właściwie myślę, że to już nie jest prawda. Nie mogłem znaleźć komunikatów konsoli na jakimkolwiek poziomie rejestrowania.
źródło
Może to być pomocne lub nie, ale w systemie Windows można odczytać dziennik konsoli za pomocą funkcji śledzenia zdarzeń dla systemu Windows
http://msdn.microsoft.com/en-us/library/ms751538.aspx
Nasze testy integracji są uruchamiane w .NET, więc używam tej metody, aby dodać dziennik konsoli do naszych wyników testu. Zrobiłem przykładowy projekt konsoli, aby zademonstrować tutaj: https://github.com/jkells/chrome-trace
--enable-logging --v = 1 nie działa w najnowszej wersji Chrome.
źródło
Wiele dobrych odpowiedzi, ale dlaczego po prostu nie użyć JSON.stringify (your_variable)? Następnie pobierz zawartość za pomocą kopiowania i wklejania (usuń zewnętrzne cudzysłowy). Tę samą odpowiedź zamieściłem również pod adresem: Jak zapisać dane wyjściowe z console.log (obiektu) do pliku?
źródło
Jest jeszcze jedno narzędzie typu open source, które pozwala na zapisanie wszystkich
console.log
wyników w pliku na serwerze - JS LogFlush (wtyczka!).Próbny
źródło
Jeśli używasz serwera Apache na swoim hoście lokalnym (nie rób tego na serwerze produkcyjnym), możesz również opublikować wyniki w skrypcie zamiast zapisywać go na konsoli.
Więc zamiast tego
console.log
możesz napisać:Wtedy
save.php
możesz to zrobićźródło
W systemie Linux (przynajmniej) możesz ustawić CHROME_LOG_FILE w środowisku tak, aby chrome zapisywał dziennik aktywności konsoli do nazwanego pliku przy każdym uruchomieniu. Dziennik jest nadpisywany przy każdym uruchomieniu Chrome. W ten sposób, jeśli masz zautomatyzowaną sesję, która uruchamia Chrome, nie musisz zmieniać sposobu uruchamiania Chrome, a dziennik jest dostępny po zakończeniu sesji.
eksportuj CHROME_LOG_FILE = chrome.log
źródło
Obecnie jest to bardzo proste - kliknij prawym przyciskiem myszy dowolną pozycję wyświetlaną w dzienniku konsoli i wybierz opcję Zapisz jako i zapisz całe dane wyjściowe dziennika do pliku na komputerze.
źródło
inne rozwiązania w tym wątku nie działały na moim komputerze Mac. Oto rejestrator, który sporadycznie zapisuje reprezentację ciągu przy użyciu ajax. użyj go z
console.save
zamiastconsole.log
w zależności od potrzeb, możesz zapisać ten ciąg lub po prostu
console.log
go i skopiować i wkleić. oto Ajax dla Ciebie na wypadek, gdybyś chciał go zapisać:saveLog.php
należy dołączyć dane do pliku dziennika gdzieś. Nie potrzebowałem tej części, więc nie dołączam jej tutaj. :)https://www.google.com/search?q=php+append+to+log
źródło