React Native'de günlük kaydı nasıl yapılır?


Yanıtlar:


325

console.log İşler.

İOS'ta varsayılan olarak, Xcode içindeki hata ayıklama bölmesinde oturum açar.

IOS simülatöründe ( + D) tuşuna ve Uzak JS Hata Ayıklaması'na basın . Bu, localhost üzerinde http: // localhost: 8081 / debugger-ui kaynağını açar . Oradan görüntülemek için Chrome Geliştirici araçları javascript konsolunu kullanınconsole.log


47
React Native için atom kullanarak Android'de konsol günlüğünü nasıl yazdırabilirim?
kumlu

3
Bu bak @sandy cevabı . Özellikle Atom için değil, ancak XCode olmayan (macOS olmayan) geliştirme için kullanılabilir
alexdriedger

21
React Native 0.29 ve sonrasında, hata ayıklayıcıyı çalıştırmadan günlükler alabileceğinizi unutmayın. Proje klasörünüzdeki komut satırında reat-native log-ios veya reat-native log-android'i çalıştırın.
Martin Konicek

1
Uzak JS Hata Ayıklamasını açtığınızda, seçenek + command + i tuşlarına basmanız ve konsolu kontrol etmeniz gerekir. Eksik ve beni şaşırttı tamamen gerekli bilgi.
sudo

1
Uygulamanızın üretim sürümünde console.log dosyasının uygulamanızı iOS'ta kilitleyebileceğini unutmayın. bu nedenle ortamın gelişip gelişmediğini kontrol ettiğinizden emin olun .
Yash Ojha

347

Kullanımı console.log,console.warn vb

React Native 0.29'dan itibaren konsoldaki günlükleri görmek için aşağıdakileri çalıştırabilirsiniz:

$ react-native log-ios
$ react-native log-android

2
Bu hata ayıklayıcıyı başlatmak animasyonları slooooow yapar çünkü çok yararlıdır.
jcollum

13
Bu çalışmıyor. react-native log-ios Evelopers-Mac-mini com.apple.CoreSimulator.SimDevice.02C1B6C7-2CD2-406E-AC93-DD430E5E3C69 [948] (com.apple.videosubscriptionsd) <Notice> komutunu
rptwsthi

@rptwsthi Aynı problemim var. Bunu çözebildiniz mi?
Ben

2
@Denis Kniazhev Sadece hataları günlüğe kaydetmenin bir seçeneği olduğunu düşünmüyorum, ancak çıktıyı filtreleyebilirsiniz. Mac veya Linux kullanıyorsanız: reat-native log-android | grep "hatalar için filtrem".
Martin Konicek

1
console.warn bazı endişeleri kontrol etmeme yardımcı oldu.
Madhavi Jayasinghe

39

Pre React Native 0.29, bunu konsolda çalıştırın:

adb logcat *:S ReactNative:V ReactNativeJS:V

Post React Native 0.29, çalıştırın:

react-native log-ios

veya

react-native log-android

Martin'in başka bir cevapta söylediği gibi.

Bu, tüm console.log (), hataları, notları vb. Gösterir ve sıfırın yavaşlamasına neden olur.


3
Bu basit seçenek için +1. adb logcat -v time -s ReactNativeJS
Zamanlamaları

Hata ayıklama sekmesini arka planda tutmak gecikmeye neden olur. Çözüm, sekmeyi ön planda tutmak veya yeni bir pencerede açmaktır.
Sabbir

React Native Debugger'ı aylardır kullanıyorum ve gecikmenin önlenmesi için en iyi seçenek Sabbir'in
Fran Verona

36

kullanım console.debug("text");

Terminalin içindeki günlükleri göreceksiniz.

Adımlar:

  • Uygulamayı çalıştırın:
react-native run-ios        # For iOS
react-native run-android    # For Android
  • Kaydediciyi çalıştırın:
react-native log-ios        # For iOS
react-native log-android    # For Android

2
sadece console.log filtrelemek için herhangi bir yolu?

Benim için çalışmıyor, sadece genel React Native günlük mesajları gibi görüyorum Initializing React Xplat Bridge..
Philipp Ludwig

21

Visual Studio Code, console.log'unuzu gösterebilecek iyi bir hata ayıklama konsoluna sahiptir.

resim açıklamasını buraya girin

VS Kodu, çoğu zaman, React Native dostudur.


6
VS Kodunun reat-native'den hata ayıklama çıktısını nasıl alabileceği hakkında daha fazla ayrıntı verebilir misiniz? Teşekkürler!
mike123

Cihazdaki uygulamanızdan 'Hata Ayıklama JS'yi ve VS Kodu üzerindeki görünüm menünüzden' Hata ayıklama konsolunu aç (shift-command-y) 'seçeneğini belirleyin. Gerçi github.com/Microsoft/vscode-react-native gerekir .
goodhyun

19

Bu noktada Chrome Geliştirici Araçları arkadaşınız vardır.

Aşağıdaki adımlar sizi console.logbildirimlerinizi görebileceğiniz Chrome Geliştirici Araçları'na yönlendirmelidir .

adımlar

  1. Henüz yapmadıysanız Google Chrome'u yükleyin
  2. react-native run-androidVeya kullanarak uygulamayı çalıştırreact-native run-ios
  3. Geliştirici menüsünü aç
    • Mac: ⌘+D iOS veya ⌘MAndroid iOS için
    • Windows / Linux: Android telefonu sallayın
  4. seçmek Debug JS Remotely
  5. Bu, hata ayıklayıcıyı Chrome'da başlatmalıdır
  6. Chrome'da: Tools -> More Tools -> Developer Optionsve consolesekmede olduğunuzdan emin olun

Artık bir console.logifade yürütüldüğünde, bu ifadenin Chrome Geliştirici Araçları'nda görünmesi gerekir. Resmi belgeler burada .


2
Bu, geliştirme sırasında uygulamanın performansını yavaşlatabilir.
Andrien Pecson

17

React Native uygulamaları geliştirirken hata ayıklamak için kullandığım 3 yöntem var:

  1. console.log(): konsolda gösterilir
  2. console.warn(): uygulamanın altındaki sarı kutuda gösterilir
  3. alert(): tıpkı web'de olduğu gibi bir istem olarak gösterilir

6

React Native Debugger'ı kullanmanızı tavsiye ederim. Bu komutu kullanarak indirip yükleyebilirsiniz.

brew update && brew cask install react-native-debugger

veya

Sadece aşağıdaki bağlantıyı kontrol edin.

https://github.com/jhen0409/react-native-debugger

Mutlu Hacking!


Bunun yerine varsayılan kullanıyorum Bu start, Chrome yerine varsayılan hata ayıklayıcı olarak Debugger'ı açacak ve -gbayrak yeniden yüklemelere odaklanmayı engelleyecektir. "start": "env REACT_DEBUGGER=\"$([ -d '/Applications/React Native Debugger.app' ] && echo \"open -g 'rndebugger://set-debugger-loc?host=localhost&port=8081' --args\")\" node node_modules/react-native/local-cli/cli.js start"
lapa lapa

3

Aynı sorun vardı: konsol mesajları XCode hata ayıklama alanında görünmüyordu. Benim app cmd-d hata ayıklama menüsünü getirmek için yaptım ve "Safari hata ayıklama" ayarlamıştı hatırladı.

Bunu kapattım ve çıkış mesajına bazı mesajlar yazdırıldı, ancak konsol mesajlarıma yazdırılmadı. Ancak, günlük iletilerinden biri şunları söyledi:

__DEV__ === false, development-level warning are OFF, performance optimizations are ON"

Bunun nedeni, projemi daha önce gerçek bir cihazda test etmek için şu komutla bir araya getirmiş olmamdı:

react-native bundle --minify

Bu, "dev-mode" olmadan paketlenmiştir. Geliştirici iletilerine izin vermek için --dev bayrağını ekleyin:

react-native bundle --dev

Ve console.log mesajları geri döndü! Gerçek cihaz için donatılacak değilseniz, yeniden noktaya unutma jsCodeLocationiçinde AppDelegate.m(ben yaptım!) Localhost'a.



3

React-Native'de günlük almak çok kolay

Console.log ve console.warn kullanın

console.log('character', parameter)

console.warn('character', parameter)

Tarayıcı günlüğünde görüntüleyebileceğiniz bu günlük. Cihaz günlüğünü kontrol etmek veya üretim APK günlüğü demek istiyorsanız kullanabilirsiniz

adb logcat

adb -d logcat

ADB'de console.logve console.warnifadeleri hariç her şey gösterilir .
Andrew Koster

Evet @AndrewKoster Size katılıyorum, ADB ile tüm günlükleri görüntüleyebiliriz, ancak bu size cihaz günlüklerini verir, burada sorgu bir web geliştirme günlüğü ile ilgilidir. ADB size cihaz günlüklerini verir ve cihaz yapılandırmalarını kontrol edebilir ve kontrol edebilirsiniz. Geliştirme sırasında size yardımcı olabilecek ADB komutlarının feryat bağlantısından bilgi toplayabilirsiniz. androidcentral.com/10-basic-terminal-commands-you-should-know
jatin.744

2

Size yardımcı olabilecek tepki-native-xlog modülü, tepki-native için WeChat'ın Xlog'u . Xcode konsolunda ve günlük dosyasında çıktı alabilen Ürün günlük dosyaları hata ayıklamanıza yardımcı olabilir.

Xlog.verbose('tag', 'log');
Xlog.debug('tag', 'log');
Xlog.info('tag', 'log');
Xlog.warn('tag', 'log');
Xlog.error('tag', 'log');
Xlog.fatal('tag', 'log');

2

Geliştirme Zaman Kaydı

Geliştirme zamanı günlüğü için console.log () kullanabilirsiniz . Önemli bir şey, üretim modunda günlüğe kaydetmeyi devre dışı bırakmak istiyorsanız, uygulamanın Root Js dosyasına, böyle boş bir işlev atamanız yeterlidir - console.log = {} Uygulamada tüm günlük yayınlamayı tamamen devre dışı bırakacak, aslında üretimde gerekli olacak console.log olarak zaman alır.


Çalışma Süresi Günlüğü

Üretim modunda, gerçek kullanıcılar uygulamanızı gerçek zamanlı kullandıklarında günlükleri görmek de gerekir. Bu, hataların, kullanımın ve istenmeyen vakaların anlaşılmasına yardımcı olur. Bunun için piyasada birçok 3. taraf ücretli araç bulunmaktadır. Kullandığım bunlardan biri Logentries

İyi olan, Logentries'in React Native Module'a sahip olmasıdır . Bu nedenle, mobil uygulamanızla Çalışma süresi günlüğünü etkinleştirmeniz çok daha az zaman alacaktır.


2

Yaklaşık bir ay önce ortaya çıkan bir şey, "React Native App Oluştur", Expo uygulamasını kullanarak uygulamanızın mobil cihazınızda (kamera ile HERHANGİ) canlı olarak neye benzediğini göstermenizi sağlayan harika bir kaynaktır. . Sadece canlı güncellemeler değil, aynı zamanda web için geliştirirken olduğu gibi , daha önce React Native ile yaptığımız gibi tarayıcıyı kullanmak yerine , konsol günlüklerinizi terminalinizde görmenize izin verecektir .

Tabii ki, bu ortak plaka ile yeni bir proje yapmak zorunda kalacaksınız ... ancak dosyalarınızı taşımanız gerekiyorsa, bu bir sorun olmamalı. Bi dene.

Düzenleme: Aslında kamera gerektirmez. Bir QR kodunu taramak için söyledim, ancak sadece bir QR kodu ile değil, sunucunuzla senkronize etmek için bir şeyler de yazabilirsiniz.


2

Kullanırken yerel yerel uygulamanızda hata ayıklamak veya çıktı almak için iki seçenek vardır

Emülatör veya Gerçek Cihaz

İlk Kullanım Öykünücüsü için: kullanın

tepki yerel günlük android veya tepki yerel günlük ios

günlük çıktısını almak için

gerçek cihazda. cihazınızı sallayın

böylece menü uzaktan hata ayıklamayı seçtiğiniz yerden gelir ve tarayıcınızda bu ekranı açar. böylece günlük çıktınızı konsol sekmesinde görebilirsiniz.resim açıklamasını buraya girin


2

resim açıklamasını buraya girinGünlüğe kaydetme ve redux deposu için yerel hata ayıklayıcıyı kullan https://github.com/jhen0409/react-native-debugg

Sadece indirin ve yazılım olarak çalıştırın, ardından simülatörden Hata Ayıklama modunu etkinleştirin.

Herhangi bir bileşene sağlanan stili görmeye yardımcı olan krom geliştirici araçlarındaki öğe gibi diğer hata ayıklama özelliklerini destekler.

Redux dev araçları için son tam destek


2
  1. Put console.log("My log text")Kodunuzdaki
  2. komutuna git Çizgi araçları
  3. kendini geliştirme klasöründe konumlandırın

Android'de:

  • bu komutu yaz: React-native log-android

IOS'ta:

  • bu komutu yaz: React-native log-ios

1

Cihazınızdan uzak js hata ayıklama seçeneğini kullanabilir veya ios için reat -native log-android ve reat -native log- ios kullanabilirsiniz.


1

console.log () kodunuzda hata ayıklamanın kolay yoludur, ancak herhangi bir durumu görüntülerken ok işlevi veya bind () ile kullanılması gerekir. Bağlantıyı faydalı bulabilirsiniz .


1

Bunu 2 yöntemle yapabilirsiniz

1> kullanarak uyar

console.warn("somthing " +this.state.Some_Sates_of_variables);

2> Alert kullanarak Bu uyarıya ulaştığında her seferinde iyi değildir, o zaman pop her açıldığında açılır, eğer bunu yapmak tercih edilmezse

Import the {Alert} from 'react-native'
   // use this alert
   Alert.alert("somthing " +this.state.Some_Sates_of_variables);

1

Windows ve Android Studio kullanan kullanıcılar:

Android Studio'da Logcat altında bulacaksınız. Burada gösterilen çok sayıda günlük iletisi vardır, bu nedenle yalnızca "ReactNativeJS" için, yalnızca yerel yanıt uygulamanızda oluşturulan console.log iletilerinizi gösteren bir filtre oluşturmanız daha kolay olabilir.


1

Bu tür hata ayıklama sorunuyla karşılaşan her geliştirici, ben de karşı karşıya kaldım ve buna değindim ve çözüm başlangıç ​​seviyesinde benim için yeterli, bizimle rahat olanı denememize ve kullanmamıza yardımcı olan birkaç yolu kapsıyor

  1. Console.log ile hata ayıklama
  2. Nüklid ile kod (mantık) hata ayıklama
  3. Kod (mantık) ile Chrome'da hata ayıklama
  4. GUI'de hata ayıklamak için Xcode kullanma

https://codeburst.io/react-native-debugging-tools-3a24e4e40e4



1

Bunu başarmanın birkaç yolu var, onları listeliyorum ve bunları kullanırken de eksilerini dahil ediyorum. Kullanabilirsiniz:

  1. console.logve dev araçlarından, Android Studio ve Xcode'dan uzaktan hata ayıklama seçeneğini devre dışı bırakmadan günlük bildirimlerini görüntüleyin. veya uzaktan hata ayıklama seçeneğini devre dışı bırakabilir ve krom geliştirici araçlarında veya vscode veya hata ayıklamayı destekleyen başka bir düzenleyicide günlüğe kaydetmeyi görüntüleyebilirsiniz, bu işlemi bir bütün olarak yavaşlatacağından dikkatli olmanız gerekir.
  2. Kullanabilirsiniz, console.warnancak daha sonra mobil ekranınız, durumunuza göre mümkün olabilecek veya olmayabilecek tuhaf sarı kutularla doludur.
  3. Karşılaştığım en etkili yöntem, üçüncü taraf bir araç olan Reactotron'u kullanmak . Farklı düzeylerde (hata, hata ayıklama, uyarma, vb.) Her günlük deyimini görmenizi sağlayan basit ve yapılandırması kolay bir araçtır. Performansınızı yavaşlatmadan uygulamanızın tüm günlük kaydını gösteren GUI aracı sağlar.

1

Normal web için kullanılanla aynı şeyi kullanırsınız. consoleKomut ayrıca bu durumda çalışır. Örneğin, kullanabilirsiniz console.log(), console.warn(), console.clear()vb

consoleReact Native uygulamanızı çalıştırırken oturum açarken bu komutu kullanmak için Chrome Geliştirici'yi kullanabilirsiniz .


0

console.log() geliştirici menünüzden uzak js hata ayıklayıcısını kullandığınızda oturum açma konsolunuzu görmenin en iyi ve basit yoludur


0

Chrome Devtool, günlüğe kaydetmenin ve hata ayıklamanın en iyi ve en kolay yoludur.


0

Osx kullanıyorsanız ve bir emülatör kullanıyorsanız, console.logdoğrudan safari web denetçisinde görüntüleyebilirsiniz.

Safari => Geliştirme => Simülatör - [simülatör sürümünüz burada] => JSContext


0

Normalde hata ayıklamaya ihtiyaç duyduğumuz iki senaryo vardır.

  1. Verilerle ilgili sorunlarla karşılaştığımızda ve bu durumda verilerimizle ve verilerle ilgili hata ayıklamalarımızı kontrol etmek istediğimizde console.log('data::',data)

    ve js hata ayıklama en iyi seçenektir.

  2. Diğer durum, bileşenin stilini kontrol etmemiz gereken kullanıcı arayüzü ve stillerle ilgili sorunlardır, bu durumda tepki-dev-araçları en iyi seçenektir.

    her iki yöntem de burada belirtilmiştir.


0

console.log herhangi bir JS projesi için kullanılabilir. Uygulamayı localhost'ta çalıştırıyorsanız, açıkçası herhangi bir javascript projesine benzer. Ancak simülatörü veya herhangi bir cihazı kullanırken, bu simülatörü yerel ana bilgisayarımıza bağlayın ve konsolda görebiliriz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.