
크로스 플랫폼 Apple UnifiedLogs 파서!
macOS Unified Log 파일을 파싱하는 데 도움이 되는 간단한 Rust 라이브러리입니다.
Unified Logs는 macOS 10.12(Sierra, 2016)에서 도입되었습니다. 모든 Apple 제품을 위한 통합 로그 형식을 만들려는 Apple의 목표의 일부입니다. macOS, iOS, watchOS, tvOS에 존재합니다. Unified Logs는 Apple이 사용하던 많은 기존 로그 형식을 대체합니다. 이 라이브러리를 사용하여 이러한 로그 파일을 파싱할 수 있습니다.
현재 추출되는 데이터는 다음과 같습니다:
다운로드할 수 있는 예제 바이너리가 있습니다.
unifiedlog_iterator - logarchive를 JSOL 또는 CSV 파일로 파싱할 수 있습니다. 또한 실시간 시스템의
로그도 파싱할 수 있습니다. 출력 파일은 상당히 커질 수 있습니다.수백만 개의 로그 항목으로 테스트되었습니다. 그러나 Unified Log 형식의 복잡성으로 인해 몇 가지 제한 사항이 있습니다:
printf 스타일 오류 코드 조회를 지원하지 않습니다. 이 라이브러리는 로그 메시지에 대한 오류 코드 조회를 수행하지 않습니다. macOS의 기본 log 명령은 printf 스타일 %m 메시지를 만나면 오류 코드 조회를 지원합니다.
예를 들어 로그 메시지: 'Failed to open file, error: %m'
a. 이 라이브러리의 출력:
Failed to open file, error: 1
b. macOS Log 명령의 출력:
Failed to open file, error: no such file or directory
이 라이브러리는 로그 메시지의 대부분의 사용자 지정 개체를 지원합니다. 그러나 지원되지 않는 개체는 base64로 인코딩됩니다.