logger는 Arch Linux에서 메시지를 어디에 기록합니까? 항목을 찾을

logger명령은 syslog를 통해 항목을 기록합니다.이 항목은 일반적으로 해당 행을와 같은 파일에 저장합니다 /var/log/messages.

Arch Linux에서 문서를 올바르게 이해 하면 모든 로깅이 systemd를 통해 수행되지만을 logger사용 하여 항목을 찾을 수 없습니다 journalctl.

  • logger아치 리눅스에서 보낸 메시지는 정확히 어떻게됩니까 ?
  • 로그 항목은 어디에 저장됩니까? (빠른 grep 제안 /var/log/journal/*/system.journal합니다.)
  • 이 로그에 어떻게 액세스 할 수 있습니까? (에 대한 특별한 옵션이 필요 journalctl합니까?)


답변

로그 메시지가 저널에 어디에도 나타나지 않기 때문에 저널링 전달에 대한 syslog가 올바르게 설정되지 않았으며 메시지가 단순히 삭제되는 것 같습니다. 아치에 있기 때문에 쉽게 고칠 수 있습니다. syslog-ng패키지가 설치되어 있는지 확인하십시오 .

pacman -S syslog-ng

그런 다음 부팅시 활성화되어 있는지 확인하십시오.

systemctl enable syslog-ng

마지막으로 서비스를 활성화해도 자동으로 시작되지 않으므로 서비스를 시작하십시오.

systemctl start syslog-ng

자세한 내용은 이 아치 위키 페이지 를 참조하십시오.

이 문제가 발생하는 이유는 다음과 같습니다.

고전적인 syslog에 로그인하는 특정 방법이 있으며, 새로운 시스템 저널에 기록하는 특정 방법이 있습니다. 호환되지 않습니다. syslog를 지원하는 응용 프로그램은 저널을 지원하도록 마술처럼 만들 수 없습니다. 작성자는이 기능을 명시 적으로 구현해야합니다. 시스템 저널을 지원하는 애플리케이션은 일반적으로 시스템 시스템에서 실행될 때 “네이티브 API”를 지원하는 것으로 언급됩니다.

syslog API와 저널링 된 API가 다르기 때문에 저널링 된 API를 지원하지 않는 애플리케이션은 로그 메시지가 삭제됩니다. 이것이 당신의 사건에서 일어난 일입니다.

syslog-ng패키지의 작업은 journald API 호출에 시스템 로그 API 호출을 번역하는 것입니다. 이러한 방식으로 syslog 메시지는 결국이를 저널로 만듭니다.


답변

일부 데몬은 /var/log/아치 리눅스에서 로그를 쓰지 않았 으며에 대한 구성 syslog-ng은 내가 본 다른 답변과 다릅니다.

정상적인 syslog-ng.service서비스는 없으며 실제로 이름이 지정 syslog-ng@default.service됩니다.

작동하지 않습니다.

# systemctl enable syslog-ng
Failed to enable unit: Unit file syslog-ng.service does not exist.

Arch Wiki에 따라 약간 다르게해야합니다 .

# systemctl start syslog-ng@default.service
# systemctl enable syslog-ng@default.service
Created symlink /etc/systemd/system/multi-user.target.wants/syslog-ng@default.service → /usr/lib/systemd/system/syslog-ng@.service.
#