저는 간단한 syslog 서버(UDP 기반)를 구현하려고 합니다. 이와 관련하여 우리는 SYSLOG 회전 기능을 구현하려고 합니다. 현재 로그 회전은 rename
C API에 의해 수행됩니다.
이렇게 하면 시스템 로그 파일 이름만 변경됩니다. gzip 파일 내에 있는 syslog 파일이 아닙니다.
그래서 저는 Windows 프로젝트에 대한 시스템 로그 회전을 구현하기 위해 Linux에서 따라야 할 프로세스가 무엇인지 이해하려고 노력하고 있습니다.
답변1
logrotate
일반적으로 로그 파일 회전은 도구 등을 통해 syslog 데몬 외부에서 처리됩니다. 교체 후에는 모든 로그 파일을 다시 열라는 신호가 syslog 데몬으로 전송됩니다. 다른 프로세스에서 열린 파일의 이름을 바꾸는 것은 문제가 되지 않기 때문에 이는 linux/unix에서 잘 작동합니다. Windows에서는 이것이 더 문제가 될 수 있다는 것을 알고 있습니다.
편집: 로그 파일의 이름이 또는 (바람직하게는) daemon.log
로 변경되었습니다 . 즉시 또는 주기 후에 회전된 파일이 압축됩니다. 이는 기술적으로 로그 파일 회전 자체와 관련이 없지만 단지 공간을 확보하기 위한 것이며 오늘날의 테라바이트 디스크를 고려하면 압축하지 않고 시간을 절약하도록 선택할 수 있습니다.daemon.log.0
daemon.log.20150423
gzip