이 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.
#