OS X 시스템 로그에서 메시지를 필터링하는 방법이 있습니까?
Lion을 실행하는 오래된 MacBook의 로그를 살펴보고 있습니다.
사용되지 않는 서비스에서 10 초마다 오류 메시지가 표시됩니다.
com.apple.launchd.peruser.503[154] (de.novamedia.VodafoneDeviceObserver[1386]): posix_spawn("/Library/Application Support/Vodafone/NML2NDeviceObserver.app/Contents/MacOS/NML2NDeviceObserver", ...): No such file or directory
실제 앱은 오랫동안 사라졌으며 오류 메시지를 생성하는 시작 서비스였습니다 (최근 5 년 동안!)
답변
가독성을 높이기 위해 콘솔 로그를 복잡하게 만드는 오류 메시지 를 숨기려면 문제가되는 이벤트 메시지 중 하나를 선택하여 쉽게 수행 할 수 있습니다. 그런 다음 콘솔 도구 모음에서 ‘발신자 무시’를 클릭하십시오. 그러면 해당 메시지가 보이지 않게됩니다. 더 이상 사용되지 않는 드라이버 문제를 해결하기 전까지는 이벤트 메시지가 계속 생성되지만 콘솔에는 표시되지 않습니다. 더 많은 정보를 볼 여기 와 여기 .
답변
LaunchAgents, LaunchDaemons 및 / 또는 StartupItems 폴더에서 구식 Vodafone 드라이버를 찾아 제거하려고 했습니까?
다음 위치에서 살펴보십시오.
- ~ / 라이브러리 / LaunchAgents
- / 라이브러리 / LaunchAgents
- / 라이브러리 / 런치 데몬
- / 시스템 / 라이브러리 / LaunchAgents
- / 시스템 / 라이브러리 / LaunchDaemons
자세한 내용은 여기 를 참조하십시오.
답변
이 항목으로 /var/log/system.log
새 파일을 만들어 로그 항목을 성공적으로 필터링했습니다./etc/asl/custom.cleanup.conf
# Ignore some noisy log entries.
? [CA= Message Google Chrome He] file /dev/null
? [CA= Message Google Chrome He] claim
? [CA= Message Time to encode state for window] file /dev/null
? [CA= Message Time to encode state for window] claim
제외하려는 특정 로그 항목과 일치하도록 필터를 조정합니다. 위의 필터는 제거하려는 로그 항목과 일치합니다 (아래 섹션).
설정 파일이 생성되면 다시 시작 (해당 디렉토리에 루트 권한을 수정해야 주) syslog
와
sudo launchctl unload /System/Library/LaunchDaemons/com.apple.syslogd.plist
sudo launchctl load /System/Library/LaunchDaemons/com.apple.syslogd.plist
이들은 제외하려는 로그 항목입니다.
Aug 20 10:38:54 strike iTerm2[11929]: Time to encode state for window <PseudoTerminal: 0x7ff611223344 tabs=2 window=<PTYWindow: 0x7ff611223344 frame=NSRect: {{-0, 6}, {1914, 1051}} title=1. sudo alpha=1.000000 isMain=1 isKey=1 isVisible=1 delegate=0x7ff611223344>>: 0.01158303022384644
Aug 20 10:38:56 strike kernel[0]: Google Chrome He[72873] triggered unnest of range 0x7fff11223344->0x7fff11223344 of DYLD shared region in VM map 0x84d623d211223344. While not abnormal for debuggers, this increases system memory footprint until the target exits.
syslog
에 쓸 수없는 것에 대해 불평 /dev/null
하지만 필터링 된 항목은 /var/log/system.log
의도 한 결과 에서 제외됩니다 .
Aug 20 11:36:31 strike syslogd[74699]: Disabling module custom.cleanup.conf writes to /dev/null following 6 failures (Operation Failed)
특히 필터 당 두 줄이 필요하지 않은 경우이를 구성하는 더 깨끗한 방법에 대해 듣고 싶습니다. 🙂
답변
asl.conf
매뉴얼 페이지는 형태로 쿼리 행동 규칙을 포함 할 수 있음을 명시
? query action …
그리고 그 query
형식을 가지고
[operator key value]
예
? [= Sender foobar] [<= Level error] notify com.apple.foobar
op key value op key value
-----query 1----- -----query 2---- ---------action--------
같은 출처에서 (굵은 글씨는 내 것입니다)
ignore Causes a matching message to be ignored in all **subsequent** matching rules.
이전에 사용 된 구성 syslog.conf
은 이제 asl.conf
주석 아래에 있습니다.
# Flat file configurations formerly in syslog.conf
system.log
와 에서 Console.app
메시지를 무시 하려면 위의 주석 전에 메시지를 무시하는 규칙을 사용해야한다는 것을 이해합니다 .
개질제는 실시 예 S
로부터의 문자열과 일치하는 메시지를 무시한다 SIMBL Agent
.
? [= Sender SIMBL Agent] [S= Message warning: failed to get scripting definition from] ignore
op -key-- ---value--- mod --key-- --------------------value-----------------------
--------query 1------- -----------------------query 2------------------------------- action
규칙을 추가 한 후로 데몬을 다시 시작하십시오 sudo killall HUP syslogd
.
OS X 10.8.5에서 성공적으로 테스트되었습니다.
최신 정보
모듈은 10.9에 등장한 것으로 보입니다 ( 여기 참조) .
/ etc / asl 디렉토리가 존재하면 syslogd 및 aslmanager가 포함 된 각 파일을 읽습니다. 이러한 파일은 asl.conf와 동일한 형식이어야합니다. 각 파일은 파일 이름으로 식별되는 독립적 인 모듈을 구성합니다. 모듈은 독립적으로 활성화 또는 비활성화 될 수 있습니다. 각 모듈은 수신 된 메시지에 대한 자체 규칙 세트를 지정할 수 있습니다. 자세한 내용은 ASL 모듈 섹션을 참조하십시오.
따라서 필터를 별도의 파일로 구성 할 수 있습니다. 그래도 테스트하지 않았습니다.