2012-06-05 4 views
0

나는 logcat에 영향을 줄 수있는 모든 것을 검색했지만이 문제에 대한 답을 찾을 수 없습니다. 초당 스크린에 수백 개의 logcat 메시지를 덤프하는 대형 애플리케이션을 디버깅하고 있습니다. 이클립스에서는 정규식을 사용하여 로그 태그로 필터링하지만, 이상한 상황이 발생합니다. "일시 중지"버튼은 아무런 이유없이 계속 활성화되며 새로운 메시지가 방대한 양을 차지하는 상황에서 조사중인 특정 이벤트 시퀀스에 대한 로그를 얻기 전에 한 번에 조금씩 덮어 씁니다 . 나는 심지어 중단 점을 설정하고 "내보내기"버튼을 사용하여 조금씩 로그를 캡쳐하려고 시도했지만 응용 프로그램이 다중 스레드이며 다른 스레드의 메시지 때문에 너무 빨리 사라집니다. 어떻게 든 버퍼를 늘리거나 오래된 메시지를 붙이면 좋겠지 만,이 시점에서 나는 그것을 완전히 없애고 파일로 출력 하겠지만 로그 태그로 필터링하는 방법을 모르겠습니다. 커맨드 라인에서 내 정규 표현식을 사용합니다. 내 옵션은 무엇입니까?Logcat 문제 (일시 중지, 버퍼, 출력 리다이렉션)

P. 나는 주변을 둘러 보았고 이것이 중복되지 않기를 바란다. 물론 내가 도움이되지 않는 풍부한 관련 쓰레드를 가로 질렀다. 정말 고마워!

답변

0

나는 이와 비슷한 문제가 있었다. 나는 웹 서버와 통신하고 엄청난 양의 데이터를 다운로드하는 응용 프로그램에서 작업하고있었습니다. 거의 모든 변수에 대해 로그가 있었고 JSON에서받은 결과가 올바른지 테스트 해 보았습니다. 그게 내가 그런 식으로 그래서, 내 솔루션에 대한 더 나은 아무것도 찾을 수 없습니다

public void log2File(String filename, String log, int type){ 

    switch(type){ 

    case 1: // debug 

    case 2: //verbose 

    case 3: //warning 

     //..and etc 
    } 
} 

: 그래서 내가했던 것은 내 SD 카드에있는 파일에 모든 로그를 기록 할 수 있었고, 난 이런 짓을 물론 파일에 로그를 추가하고 저장해야합니다.

희망이 솔루션은 당신에게 좋은 것 같습니다.

0

이클립스 logcat 창이 높은 로깅 볼륨으로 인해 버그가 있음을 발견했습니다.이 기능을 사용하지 않으려면 비활성화 된 상태로 유지되지 않습니다.

실제로 원하는 데이터를 캡처하려면 명령 줄에서 adb logcat 명령을 사용하는 경향이 있습니다. 리눅스에, 또는 아마도 Cygwin에서 또는 당신이 할 수 있어야 OSX :

adb logcat | tee logfile 

을 둘 다 비행 메시지를 참조하고이 파일에 기록했다.

0

나는이 질문이 오래된 것을 알고 있지만, 나는 당신과 똑같은 문제를 가지고 있습니다. 나는 좋은 솔루션을 찾기 위해 어디에서나 보았지만 나에게 맞는 도구를 찾지 못해서 내 도구를 만들었습니다. Mac 사용자는 LogRabbit을 사용하여 원하는 작업을 수행 할 수 있습니다. 그것은 두 가지 다른 방법으로 문제를 해결하는 데 도움이 될 수 있습니다.

  1. 명령 행에서 adb logcat -v threadtime을 사용하여 디스크에 로그를 작성하고 LogRabbit로 그를 가져올 수 있습니다.

  2. 필터링 메커니즘은 충분히 많은 로그 볼륨을 처리 할 수 ​​있어야합니다.

보십시오. http://lograbbit.com이 정보가 도움이 되었기를 바랍니다.