React Native에서 로깅을 수행하는 방법은 무엇입니까?


답변:


325

console.log 공장.

iOS에서는 기본적으로 Xcode 내의 디버그 창에 기록됩니다.

IOS 시뮬레이터에서 ( + D)를 누르고 Remote JS Debugging을 누릅니다 . 로컬 호스트에 http : // localhost : 8081 / debugger-ui 리소스가 열립니다 . 거기에서 Chrome 개발자 도구 자바 스크립트 콘솔을 사용하여 볼 수 있습니다.console.log


47
React Native 용 atom을 사용하여 Android에서 콘솔 로그를 인쇄하는 방법은 무엇입니까?
모래

3
@sandy이 답변을 참조하십시오 . 그것은 특별히 Atom을위한 것이 아니지만, 비 XCode (일명 비 macOS) 개발에 사용될 수 있습니다
alexdriedger

21
React Native 0.29 이상에서는 디버거를 실행하지 않고도 로그를 얻을 수 있습니다. 프로젝트 폴더 내의 명령 줄에서 react-native log-ios 또는 react-native log-android를 실행하십시오.
Martin Konicek

1
Remote JS Debugging을 열 때 option + command + i를 누르고 콘솔을 확인해야합니다. 누락되고 혼란 스러웠던 완전히 필요한 정보.
sudo

1
앱의 프로덕션 버전에서 console.log를 기억하면 iOS에서 앱이 중단 될 수 있습니다. 따라서 환경이 개발 중인지 확인 하고 반응 네이티브의 DEV 전역 변수로 환경을 알 수 있습니다 .
Yash Ojha

347

사용 console.log, console.warn

React Native 0.29부터 다음을 실행하여 콘솔에서 로그를 볼 수 있습니다.

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

2
디버거를 시작하면 애니메이션이 느려지기 때문에 매우 유용합니다.
jcollum

13
작동하지 않습니다. react-native log-ios evelopers-Mac-mini com.apple.CoreSimulator.SimDevice.02C1B6C7-2CD2-406E-AC93-DD430E5E3C69 [948] (com.apple.videosubscriptionsd)를
rptwsthi

@rptwsthi 나는 같은 문제가 있습니다. 이 문제를 해결할 수 있었습니까?
Ben

2
@Denis Kniazhev 오류 만 기록하는 옵션이 없다고 생각하지만 출력을 필터링 할 수 있습니다. Mac 또는 Linux를 사용하는 경우 react-native log-android | grep "오류에 대한 내 필터".
Martin Konicek

1
console.warn은 특정 문제를 확인하는 데 도움이되었습니다.
Madhavi Jayasinghe

39

사전 반응 네이티브 0.29, 콘솔에서 다음을 실행하십시오.

adb logcat *:S ReactNative:V ReactNativeJS:V

Post React Native 0.29, 다음을 실행하십시오.

react-native log-ios

또는

react-native log-android

마틴이 다른 답변에서 말했다시피.

모든 console.log (), 오류, 메모 등이 표시되며 속도가 느려집니다.


3
이 간단한 옵션은 +1입니다. 나는 타이밍을 얻기 위해 약간의 변형 명령 (Fine Manual을 읽은 후)을 사용하게되었습니다.adb logcat -v time -s ReactNativeJS
spechter

백그라운드에서 디버그 탭을 유지하면 지연이 발생합니다. 해결책은 탭을 전경으로 유지하거나 새 창에서 여는 것입니다.
Sabbir

나는 몇 달 동안 React Native Debugger를 사용해 왔으며 Sabbir이 말한 지연을 피하는 가장 좋은 옵션입니다 : github.com/jhen0409/react-native-debugger
Fran Verona

36

사용하다 console.debug("text");

터미널 내부에 로그가 표시됩니다.

단계 :

  • 응용 프로그램을 실행하십시오.
react-native run-ios        # For iOS
react-native run-android    # For Android
  • 로거를 실행하십시오.
react-native log-ios        # For iOS
react-native log-android    # For Android

2
console.log에서만 필터링하는 방법은 무엇입니까?

나를 위해 작동하지 않습니다, 같은 일반 React Native 로그 메시지 만 표시됩니다 Initializing React Xplat Bridge..
Philipp Ludwig

21

Visual Studio Code에는 console.log를 표시 할 수있는 알맞은 디버그 콘솔이 있습니다.

여기에 이미지 설명을 입력하십시오

VS 코드는 종종 React Native Friendly입니다.


6
VS 코드가 반응 네이티브에서 디버그 출력을 수신하는 방법에 대해 자세히 설명 할 수 있습니까? 감사!
mike123

장치의 앱에서 'Debug JS'를 선택하고 VS Code의보기 메뉴에서 '디버그 콘솔 (shift-command-y)'을 선택하십시오. github.com/Microsoft/vscode-react-native 가 필요합니다 .
goodhyun

19

여기에서 Chrome 개발자 도구 가 친구입니다.

다음 단계를 수행하면 Chrome 개발자 도구로 이동하여 console.log문장 을 볼 수 있습니다 .

단계

  1. 아직 Chrome을 설치 하지 않은 경우 설치
  2. 실행 응용 프로그램 사용 react-native run-android또는react-native run-ios
  3. 개발자 메뉴 열기
    • Mac : ⌘+D iOS 또는 ⌘MAndroid iOS
    • Windows / Linux : Android 전화 흔들기
  4. 고르다 Debug JS Remotely
  5. Chrome에서 디버거를 시작해야합니다.
  6. Chrome에서 : 탭 Tools -> More Tools -> Developer Options에 있는지 확인 console하십시오.

이제 console.log명령문이 실행될 때마다 Chrome 개발자 도구에 표시되어야합니다. 공식 문서는 여기에 있습니다 .


2
개발 중에 앱 성능이 느려질 수 있습니다.
Andrien Pecson

17

React Native 앱을 개발할 때 디버깅하는 데 사용하는 3 가지 방법이 있습니다.

  1. console.log(): 콘솔에 표시
  2. console.warn(): 응용 프로그램의 노란색 상자 하단에 표시
  3. alert(): 웹에서와 마찬가지로 프롬프트로 표시

6

React Native Debugger를 사용하는 것이 좋습니다. 이 명령을 사용하여 다운로드하여 설치할 수 있습니다.

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

또는

아래 링크를 확인하십시오.

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

행복한 해킹!


나는 이것을 대신 기본값을 사용 start하고 있습니다. 크롬 대신 기본 디버거로 디버거가 열리고 -g플래그는 다시로드에 중점을 두지 못하게합니다. "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"
flaky

3

XCode의 디버그 영역에 콘솔 메시지가 나타나지 않았습니다. 내 응용 프로그램에서 cmd-d를 사용하여 디버그 메뉴를 표시하고 "Safari의 디버그"를 설정 한 것을 기억했습니다.

이 기능을 끄고 일부 메시지가 콘솔 메시지가 아닌 출력 메시지로 인쇄되었습니다. 그러나 로그 메시지 중 하나는 다음과 같이 말했습니다.

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

이전에 다음 명령을 사용하여 실제 장치에서 테스트하기 위해 프로젝트를 번들로 제공했기 때문입니다.

react-native bundle --minify

이것은 "dev-mode"를 설정하지 않고 번들로 제공됩니다. dev 메시지를 허용하려면 --dev 플래그를 포함하십시오.

react-native bundle --dev

그리고 console.log 메시지가 돌아 왔습니다! 당신이 진짜 장치에 번들되어 있지 않은 경우, 다시 점 잊지 마세요 jsCodeLocationAppDelegate.m(내가 한!) 로컬 호스트.



3

React-Native에서 로그를 얻는 것이 매우 간단합니다.

console.logconsole.warn을 사용하십시오.

console.log('character', parameter)

console.warn('character', parameter)

이 로그는 브라우저 콘솔에서 볼 수 있습니다. 기기 로그를 확인하거나 프로덕션 APK 로그를 말하려는 경우 사용할 수 있습니다

adb logcat

adb -d logcat

console.logand console.warn문을 제외한 모든 것이 ADB에 나타납니다 .
Andrew Koster

예 @AndrewKoster 동의합니다. ADB로 모든 로그를 볼 수 있지만 여기에서 장치 로그를 제공합니다. 여기서 쿼리는 웹 개발 로깅과 관련이 있습니다. ADB는 장치 로그를 제공하며 장치 구성을 제어하고 확인할 수 있습니다. 개발 중 도움이 될 수있는 ADB 명령의 다음 링크에서 정보를 수집 할 수 있습니다. androidcentral.com/10-basic-terminal-commands-you-should-know
jatin.7744

2

도움을 줄 수있는 react-native-xlog 모듈 은 react-native에 대한 WeChat의 Xlog 입니다. Xcode 콘솔과 로그 파일로 출력 할 수 있으며, 제품 로그 파일은 디버그에 도움이 될 수 있습니다.

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

개발 시간 로깅

개발 시간 로깅의 경우 console.log ()를 사용할 수 있습니다 . 프로덕션 모드에서 로깅을 비활성화하려면 앱의 Root Js 파일에서 로깅을 비활성화하려면 다음과 같이 빈 함수를 지정하십시오. console.log = {} 실제로 프로덕션에 필요한 앱 전체에서 전체 로그 게시를 비활성화합니다. console.log는 시간을 소비합니다.


런타임 로깅

프로덕션 모드에서는 실제 사용자가 실시간으로 앱을 사용할 때 로그를 확인해야합니다. 이것은 버그, 사용법 및 원치 않는 경우를 이해하는 데 도움이됩니다. 이를 위해 시장에서 많은 타사 유료 도구를 사용할 수 있습니다. 내가 사용한 그들 중 하나는 Logentries입니다

좋은 점은 Logentries가 React Native Module 도 가지고 있다는 것입니다 . 따라서 모바일 앱으로 런타임 로깅을 활성화하는 데 시간이 덜 걸립니다.


2

약 한 달 전에 나온 것은 Expo 앱을 사용하여 모바일 기기 (카메라가있는 모든 기기)에서 앱이 실제로 어떻게 생겼는지 보여줄 수있는 멋진 상용구 인 "Create React Native App"입니다. . 라이브 업데이트 가있을 뿐만 아니라 이전에 React Native에서했던 것처럼 브라우저를 사용하지 않고 웹을 개발할 때처럼 터미널에서 콘솔 로그를 볼 수 있습니다 .

물론, 상용구로 새 프로젝트를 만들어야하지만 ... 파일을 마이그레이션해야한다면 문제가되지 않습니다. 기회를주세요.

편집 : 실제로 카메라가 필요하지 않습니다. QR 코드를 스캔하기 위해 QR 코드뿐만 아니라 서버와 동기화 할 무언가를 입력 할 수도 있다고 말했습니다.


2

사용할 때 반응 네이티브 응용 프로그램의 디버그 또는 출력을 얻는 두 가지 옵션이 있습니다

에뮬레이터 또는 실제 장치

에뮬레이터를 처음 사용하는 경우 : use

반응 네이티브 로그 안드로이드 또는 반응 네이티브 로그 iOS

로그 출력을 얻으려면

실제 장치에서

메뉴는 원격 디버그를 선택하는 곳에서오고 브라우저에서이 화면을 엽니 다. 콘솔 탭에서 로그 출력을 볼 수 있습니다.여기에 이미지 설명을 입력하십시오


2

여기에 이미지 설명을 입력하십시오로깅 및 redux 저장소에 반응 네이티브 디버거 사용 https://github.com/jhen0409/react-native-debugg

다운로드하여 소프트웨어로 실행 한 다음 시뮬레이터에서 디버그 모드를 활성화하십시오.

크롬 개발자 도구의 요소와 같은 다른 디버깅 기능을 지원하므로 모든 구성 요소에 제공된 스타일을 볼 수 있습니다.

redux 개발 도구에 대한 마지막 완벽한 지원


2
  1. 넣어 console.log("My log text")코드에
  2. 커맨드 라인 도구로 이동
  3. 개발 폴더에 자신을 배치

안드로이드에서 :

  • 이 명령을 작성하십시오 : React-native log-android

iOS에서 :

  • 이 명령을 작성하십시오 : React-native log-ios

1

장치에서 원격 js 디버그 옵션을 사용하거나 iOS에 반응 네이티브 로그 안드로이드반응 네이티브 로그 IO를 사용할 수 있습니다 .


1

console.log ()는 코드를 디버깅하는 쉬운 방법이지만 상태를 표시하는 동안 화살표 함수 또는 bind ()와 함께 사용해야합니다. 링크가 유용 할 수 있습니다 .


1

두 가지 방법 으로이 작업을 수행 할 수 있습니다

1> 경고를 사용하여

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

2> 경고를 사용하여 경고에 도달하면 매번 좋지 않습니다. 따라서 팝을 열 때마다 반복을 수행하면 이것을 사용하는 것이 바람직하지 않습니다

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

1

Windows 및 Android Studio 사용자 :

Android Studio의 Logcat에서 찾을 수 있습니다. 여기에 많은 로깅 메시지가 표시되므로 "ReactNativeJS"에 대한 필터를 작성하는 것이 더 쉬울 수 있으며 반응 네이티브 애플리케이션 내부에서 작성된 console.log 메시지 만 표시합니다.


1

반응 네이티브로 디버깅하는이 문제에 직면 한 모든 개발자는 내가 직면 했음에도 불구 하고이 참조 및 솔루션은 초기 수준에서 충분하며 우리에게 편안한 것을 시도하고 사용하는 데 도움이되는 몇 가지 방법을 다룹니다.

  1. console.log로 디버깅
  2. Nuclide로 코드 디버깅 (논리)
  3. Chrome으로 코드 디버깅 (logic)
  4. Xcode를 사용하여 GUI 디버깅

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



1

이것을 달성하는 몇 가지 방법이 있습니다. 당신이 사용할 수있는:

  1. console.log개발 도구, Android Studio 및 Xcode의 원격 디버깅 옵션을 선택하지 않고 로깅 문을 봅니다. 또는 원격 디버깅 옵션을 선택 취소하고 chrome dev 도구 또는 vscode 또는 디버깅을 지원하는 다른 편집기에서 로깅을 볼 수 있으므로 프로세스 전체가 느려질 수 있으므로주의해야합니다.
  2. 사용할 수는 console.warn있지만 상황에 따라 가능하지 않을 수도있는 이상한 노란색 상자가 모바일 화면에 쇄도합니다.
  3. 내가 만난 가장 효과적인 방법은 타사 도구 인 Reactotron 을 사용하는 입니다. 서로 다른 수준 (오류, 디버그, 경고 등)의 각 로깅 문을 볼 수있는 간단하고 구성하기 쉬운 도구입니다. 성능 저하없이 앱의 모든 로깅을 표시하는 GUI 도구를 제공합니다.

1

일반 웹에 사용 된 것과 동일한 것을 사용합니다. console명령은이 경우에 작동합니다. 예를 들어, 당신이 사용할 수있는 console.log(), console.warn(), console.clear()

consoleReact Native 앱을 실행하는 동안 로깅 할 때 Chrome 개발자를 사용하여 명령 을 사용할 수 있습니다 .


0

console.log() 개발자 메뉴에서 원격 JS 디버거를 사용할 때 콘솔에서 로그온하는 가장 좋은 방법입니다



0

osx를 사용하고 있고 에뮬레이터를 사용하는 경우 console.logsafari 웹 관리자에서 직접 볼 수 있습니다 .

Safari => 개발 => 시뮬레이터-[여기의 시뮬레이터 버전] => JSContext


0

일반적으로 디버깅이 필요한 두 가지 시나리오가 있습니다.

  1. 데이터와 관련된 문제에 직면하여 데이터를 확인하고 그 경우 데이터와 관련된 디버깅을 원할 때 console.log('data::',data)

    js를 원격으로 디버그하는 것이 가장 좋습니다.

  2. 다른 경우는 UI와 스타일 관련 문제인데,이 경우 구성 요소의 스타일을 확인해야합니다. react-dev-tools가 최선의 옵션입니다.

    두 가지 방법 모두 여기에 언급되어 있습니다.


0

console.log는 모든 JS 프로젝트에 사용할 수 있습니다. localhost에서 앱을 실행하면 분명히 모든 자바 스크립트 프로젝트와 유사합니다. 그러나 시뮬레이터 또는 모든 장치를 사용하는 동안 해당 시뮬레이터를 로컬 호스트에 연결하면 콘솔에서 볼 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.