로깅에 syslog
을 사용하는 응용 프로그램이 있습니다. 이 응용 프로그램 내의 다른 라이브러리는 자신의 용도로 명시 적으로 openlog()
을 호출합니다.이 경우 이상한 일이 발생합니다. stderr 출력은 이미 열려있는 TCP 소켓으로 보내집니다. lib의 출력 로그를 stderr
또는 stdout
으로 변경하면 모든 것이 잘 동작합니다. 두 개의 syslog
연결에 문제가 있거나 코드의 어딘가에있는 것이 아닌지 궁금합니다. 이것은 lib 디렉토리의 시스템 로그 초기화가응용 프로그램이 syslog에 대해 둘 이상의 연결을 열면 어떻게됩니까?
openlog("app", LOG_PID|LOG_NDELAY, LOG_LOCAL1);
:
openlog("lib", LOG_CONS | LOG_PID | LOG_NDELAY, LOG_LOCAL1);