2014-09-11 2 views
6

NSLog()는 밀리 초 해상도의 타임 스탬프를 사용하지만 모든 로그 메시지가 경고 수준이기 때문에 무딘 도구입니다.Apple 시스템 로그 시간 (밀리 초)?

Apple 시스템 로그는 8 단계로 훨씬 더 세부적인 시스템입니다. 하지만 ... 타임 스탬프에는 1 초의 해상도 만 있습니다. 나는 시간 형식에 관한 맨 페이지를 읽었지만, 둘 모두는 두 번째로만 보인다.

분명히이 정보는 최소한 NSLog에서 사용할 수 있습니다. 많은 것이 잠시 뒤에 갈 수 있습니다. ASL로 더 나은 해결책을 얻을 수있는 방법이 있습니까?

+1

'Console.app'에서'View'>'Milliseconds'를 선택하십시오. –

+2

그건 정말 대단하네. 그러나 이것은 Xcode 콘솔 로그에 영향을 미치지 않습니다. 이는 새로운 질문을 제기합니다. 모든 로그 파일에서 시뮬레이터 나 iOS 기기에서 실행중인 iOS 기기의 Xcode 로그가 어디에 있습니까? –

+1

위치가 ~/Library/Logs/iOS Simulator/ /' –

답변

0

ASL (및 syslog)의 시간 형식에 ".#"을 추가하여 정밀도를 지정할 수 있습니다. 따라서 "utc.3"은 밀리 초 단위의 UTC 형식으로 서식을 지정합니다. 이것을 msg_fmt 또는 time_fmt 인수에 모두 추가 할 수 있습니다.

시간 형식의 정밀도는 syslogd(1)에 문서화 된 것으로 보입니다. 나는 그것이 왜 asl(3)이되지 않았는지 확신하지 못한다.

: 다음과 같을 수

2016-02-01 19:16:39.561Z Info - Hello 

asl_add_output_filemsg_fmt 인수에 지정 :

// setup, do once! 
aslclient log = asl_open(NULL, NULL, 0); 
asl_add_output_file(log, STDERR_FILENO, 
    "$Time $((Level)(str)) - $Message", // $Time here uses time_fmt arg on next line 
    ASL_TIME_FMT_UTC ".3", // time_fmt: append ".3" for milliseconds here 
    ASL_FILTER_MASK_UPTO(ASL_LEVEL_DEBUG), ASL_ENCODE_SAFE); 

// example log 
asl_log(log, NULL, ASL_LEVEL_INFO, "Hello"); 

// Note in the above ASL_TIME_FMT_UTC is #defined to "utc", so the we're 
// using compile-time string concatenation of "utc" ".3" to "utc.3". 
// Alternately you can just specify "utc.3" directly. 

및 출력이 같을 수있는 time_fmtasl_add_output_file 및 지정을 사용하여 예를 들어

,

// setup, do once! 
aslclient log = asl_open(NULL, NULL, 0); 
asl_add_output_file(log, STDERR_FILENO, 
    // in msg_fmt below, use ISO8601 + ".6" for microseconds 
    "$((Time)(ISO8601.6)) $((Level)(str)) - $Message", 
    ASL_TIME_FMT_UTC, 
    ASL_FILTER_MASK_UPTO(ASL_LEVEL_DEBUG), ASL_ENCODE_SAFE); 

// example log 
asl_log(log, NULL, ASL_LEVEL_INFO, "Hello"); 

D 출력 :

2016-02-01T14:16:39.562030-05 Info - Hello 

(나는 위의 코드 조각 만 ASL의 시간 형식의 정밀도를 지정 증명하기위한 것입니다 것을주의한다. 실제 사용에는 설정을 위해 dispatch_once이 필요하며, 로깅을 위해 직렬 디스패치 대기열을 사용하십시오.)