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_file
의 msg_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_fmt
에 asl_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
이 필요하며, 로깅을 위해 직렬 디스패치 대기열을 사용하십시오.)
'Console.app'에서'View'>'Milliseconds'를 선택하십시오. –
그건 정말 대단하네. 그러나 이것은 Xcode 콘솔 로그에 영향을 미치지 않습니다. 이는 새로운 질문을 제기합니다. 모든 로그 파일에서 시뮬레이터 나 iOS 기기에서 실행중인 iOS 기기의 Xcode 로그가 어디에 있습니까? –
위치가 ~/Library/Logs/iOS Simulator/ /' –