2013-07-13 3 views
3

요즘 디버거들이 좋아해서 가끔은 앱에서 무슨 일이 벌어지고 있는지 알아내는 가장 좋은 방법은 아직 오래되었습니다 NSLog입니다. 이렇게하면 컴퓨터에 묶여있을 때 쉽게 할 수 있습니다. Xcode가 Log Viewer 패널을 유용하게 보여줍니다. 책상에서 멀리 떨어져있을 때는 그렇게하기가 쉽지 않습니다. 예를 들어 CoreLocation 기능을 테스트하는 경우와 같이 앱을 테스트해야 할 때가 있습니다. 물론 Xcode를 열어서 테스트 실행에서 돌아 오자마자 Device Organizer의 Console 섹션을 체크 할 수 있습니다. 그런 다음 기다려야합니다. 로그를보기 위해 돌아올 때까지 무엇이 진행되고 있는지 잊었을 것입니다 앱에 문제가있다. 또한 당신이 이것을 할 수있을 때까지 당신이 찾고있는 로그 메시지가 망각으로 스크롤되어 버릴 가능성이 있습니다.(iOS) iOS 기기에서 로그 메시지를 직접 볼 수있는 방법은 무엇입니까?

장치 자체에서 콘솔 로그를 확인할 수있는 방법이 있습니까? 나는 대답을 추측하고있다 "아니오, 당신이 본때를 보여주지 않으면 (IIRC 거기에 감옥에 적어도 한두 개의 터미널 애플 리케이션 - 내가 이런 종류의 일을하는 데 사용할 수있는 땅)입니다. 불행히도 jailbreaking은 나를위한 선택 사항이 아닙니다.

다른 방법으로는 Objective-C 프레임 워크 나 라이브러리 또는 로그 수집과 장치 디스플레이를 처리하는 기타 등등이 있습니까? 이상적으로 이것은 NSLog의 드롭 인 대체 형식으로 제공 될 것이므로 간단히 검색 및 교체를 수행하고 NSLog의 모든 발생을 SomeFancyPantsLoggingTool 또는 기타로 변경하고 완료 할 수 있습니다.

찾고있는 기능 중 좋은 예는 podcast 클라이언트 Downcast에서 찾을 수 있습니다. "추가"탭을 누른 다음 화면 하단에있는 버전 번호 문자열을 누르면 새로운보기가 누적 된 로그 메시지의 스크롤 가능한보기를 포함하는 위로 슬라이드됩니다. 또한이 로그를 지원 전자 메일 주소로 쉽게 보낼 수 있습니다.

+0

너는 옛날에 NSLog()를 대체하지 않을 것이다. 대신 syslog에 연결해야합니다. 'man syslog'와'man syslogd'는 여러분의 친구들입니다. 또한'lockdownd'에 연결하고 그것으로부터 syslog를 얻으려고합니다. (개인용 API이기 때문에 AppStore에 제출하기 전에'# ifdef') –

+0

나는 일반적으로 내 자신의 로거를 사용합니다. NSLog 및 자체 매개 변수로 작동하는 정의가 있습니다. 별도의 파일에 (하루에) 내 자신의 로그를 갖고 싶기 때문에 나는 "stderr"freopen ([pathToFile UTF8String], "a", stderr)을 사용하여 "freopen"을 호출하여 새로 생성 된 파일로 모든 로그를 리디렉션합니다. 그런 다음 사용자가 문제가있어 "연락처 지원"버튼을 클릭하면 해당 로그를 나에게 보낼 수 있습니다. – krzyspmac

답변

0

다른 레벨과 다른 대상에서 로깅을 출력하도록 구성 할 수있는 LibComponentLogging을 살펴보십시오.

0

SysLog 용 파일이 있습니다. 간단히 열어서 읽을 수 있습니다. 파일은/var/log/syslog에 있습니다. 파일이 존재하지 않으면 설정 방법에 대한 지침이 here입니다.