2012-07-21 2 views
0

나는 NSLog과 몇 가지 printf 문을 사용하는 간단한 iPhone 응용 프로그램을 가지고 있습니다. 이 앱은 iPhone (3GS)에서 시리얼 통신을 테스트하기 위해 만든 간단한 테스트 앱입니다. 분명히 iOS 시뮬레이터로 직렬 COM을 테스트 할 수 없으므로 Xcode에서 Run을 클릭하면 컴퓨터에서 장치가 분리됩니다. Cydia에서 syslogd를 설치했고 tail /var/log/syslog을 사용하면 특정 로그 메시지를 모니터링 할 수 있습니다. 내 응용 프로그램을 열고 내가 메시지가 표시되지 않는 코드의 NSLog 부분에 도달하면iOS - 휴대 전화에서 ssh 세션의 NSLog 및 printf 출력을 보는 방법?

그러나 /var/log/syslog에서 나는 또한 응용 프로그램에 대한 syslog 파일의 printf 문 출력을 볼 수 없습니다 나타납니다.

iPhone 자체에 이러한 문장의 출력이 포함 된 파일이 있습니까? 아니면 /var/log/syslog으로 출력하도록 내 응용 프로그램을 지정해야합니까?

로그 파일의 내용이 들어있는 전화기에 다른 파일이있는 경우 내용이 만족 스럽습니다. 기본적으로 내가 무슨 일이 일어나고 있는지 알 수 있도록 나는 sshed 전화로 로그 메시지의 내용을 볼 수 있기를 원합니다. 그리고 전화가 컴퓨터에 연결되어 있지 않기 때문에 분명히 Xcode에서 콘솔 출력을 사용하는 것은 옵션이 아닙니다.

답변

1

tail /var/log/syslog을 사용하고 있습니까? 로그의 마지막 15 줄만 보여줍니다. 아마도 tail -f /var/log/syslog을 사용해보십시오. 방금 테스트 한 결과 내 간단한 NSLog(@"LOL");이 잘 기록되었습니다. 나는 ssh와 모든 것을 통해 그것을 볼 수 있었다.

+0

/var/log/syslog in ios9.0.2 찾을 수 없습니다. –

1

syslog에 쓰면 syslog 기능을 호출해야합니다.

NSLog 출력은 this SO question과 같이 표시됩니다.

printf는 stdout에만 표시됩니다.

NSLog와 stdout을 같은 응용 프로그램에서 로깅하지 않으려합니다. NSLog를 사용하여 모든 로깅을 할 수 있습니다. 또는 CocoaLumberjack과 같은 로깅 프레임 워크를 사용하면 syslog를 포함 할 수있는 다른 로거를 포함하여보다 유연하게 작업 할 수 있으므로 런타임에 다른 출력으로 리디렉션 할 수있는 하나의 로깅 기능이 있습니다.

+0

내 printf 문에 대해 stdout을 어떻게 볼 수 있습니까? NSLog 문을 옮겨서 syslog에서 볼 수 있었지만 printf 문을 볼 수 없었습니다. – Chris

+0

NSLog 또는 다른 로거를 사용하여 리디렉션 할 수있는 이유 중 하나가 무엇인지 알 수 없습니다. – Mark