Mac에서 /var/log/system.log에 쓰는 방법

Mac에서 /var/log/system.log에 쓰는 방법

내 Mac에서 system.log를 따르고 있습니다.

tail -f -n 0 /var/log/system.log

하지만 그 로그에 쓰는 방법을 모르겠습니다. 그것은 기계의 기본 로그인 것 같습니다. 나는 시도했다:

logger foobar  # didn't work
syslog -s -l error "message to send"  # didn't work

Mac에서 system.log에 쓰는 방법을 아는 사람이 있나요?

고쳐 쓰다:

내가 실행하면 :log stream

그런 다음 다음을 사용하십시오.

logger -is -t krypted "Hello L"

스트림에는 표시되지만 /var/log/system.log.

답변1

스트리밍 메시지는 바이너리 로그 파일의 일부입니다. Apple은 통합 로깅 시스템으로 전환하고 있으므로 최소한 기본적으로 로깅은 더 이상 동일한 방식으로 작동하지 않습니다. syslogd구성 파일 중 하나 또는 둘 다를 통해 ASL(Apple System Logger)을 구성하려고 /etc/syslog.conf시도 할 수도 있습니다 /etc/asl.conf. ( 에 더 많은 ASL 구성 파일이 저장되어 있습니다 /etc/asl.) 생성 방법을 알아보려면 매뉴얼 페이지를 참조해야 할 수도 있습니다. 특정 메시지에 대한 일반 텍스트 로그 파일. 이러한 설명서 중 일부는 man 1 log, man 1 syslog, 및 일 수 있습니다 man 5 syslog.conf. man 8 syslog아직 이 작업을 수행하는 방법을 정확히 파악하지 못했지만 사용자 지정 메시지를 생성하고 보고 "추적"할 수 있는 몇 가지 방법을 제공하고 싶습니다. (새 로깅 시스템을 구성하여 특정 메시지를 일반 텍스트 파일로 보내는 방법을 배우면 돌아와서 이 답변을 업데이트하겠습니다. 적어도할 수 있는일반 텍스트 파일이 에 존재하기 때문에 완료되었습니다 /var/log. )


메시지를 사용 syslog -s하고 보낼 수 있습니다 logger. (이 -s옵션은 로그 메시지를 에 보내며 syslogd, syslog더 많은 작업을 수행할 수 있습니다 logger.) 유사한 방식으로 로그를 추적하는 쉬운 방법 tail은 을 활용하는 것입니다 Console.app. 프로그램을 열고 아래 나열된 로컬 컴퓨터에 커서를 놓습니다.장비. 검색 필드에 메시지를 보내는 데 사용된 프로그램 이름 syslog또는 그 중 하나를 입력하세요 logger. 다음으로 터미널을 열고 메시지를 보냅니다.

syslog -s "test message"

그러면 아래와 같이 메시지가 콘솔에 표시됩니다.

Apple 콘솔의 스니펫

메시지는 로그에서 얻을 수 있습니다. 기본적으로 무시되는 행을 지정하려면 --info및/또는 옵션을 사용하십시오 . 옵션에서 syslog 메시지를 보내는 프로세스를 지정합니다 .--debuglog--predicate

log show --info --debug --predicate "process == 'logger'"

또는

log show --info --debug --predicate "process == 'syslog'"

와 유사한 효과를 얻으려면 tailstream명령을 사용하십시오.

log stream --info --debug --predicate "process == 'logger'"

또는

log stream --info --debug --predicate "process == 'syslog'"

tail흐름을 시작한 후 그림에 표시된 것과 비슷한 방식으로 동작하는지 확인하기 위해 메시지를 보냅니다 .

Apple 로그 명령 흐름

이 명령은 syslog -s "test message"메시지를 보내는 데 사용됩니다.

관련 정보