syslog
커널 로그 메시지를 읽으려면 SYSLOG_ACTION_READ를 사용합니다 .
(syslog가 제공하는 것과 같이) 커널 로그를 보내기 위해 파일 설명자를 "가져오는" 것이 가능한지 궁금합니다. 사실, 나는 select
내 애플리케이션에서 이 파일 설명자를 모니터링하고 싶습니다(이미 다른 udev 관련 파일 설명자를 모니터링하고 있기 때문입니다).
또한 구성할 수 있는 여지가 있는지 알고 싶습니다(예: 로그 수준 설정, 사람이 읽을 수 있는 형식으로 타임스탬프 형식 지정).
내 요구 사항 중 일부 또는 전부가 가능하지 않은 경우 어떤 접근 방식을 권장합니까?
답변1
실행하여 strace dmesg
무엇을 읽고 있는지 확인하세요.
# strace -e '!read,write' dmesg >/dev/null
…
open("/dev/kmsg", O_RDONLY|O_NONBLOCK) = 3
…
형식을 변경하거나 메시지를 필터링하는 매개변수는 없으며 장치에서 읽는 것은 프로그램의 작업입니다.
syslog를 실행하는 경우 커널 로그를 직접 읽는 것보다 로그가 내보내는 로그(파이프에 기록할 수 있음)를 관찰하는 것이 좋습니다.