OS X 시스템 로그에서 메시지를 필터링하는 방법이 있습니까? 로그를 살펴보고

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 드라이버를 찾아 제거하려고 했습니까?

다음 위치에서 살펴보십시오.

  1. ~ / 라이브러리 / LaunchAgents
  2. / 라이브러리 / LaunchAgents
  3. / 라이브러리 / 런치 데몬
  4. / 시스템 / 라이브러리 / LaunchAgents
  5. / 시스템 / 라이브러리 / 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 모듈 섹션을 참조하십시오.

따라서 필터를 별도의 파일로 구성 할 수 있습니다. 그래도 테스트하지 않았습니다.


답변