OpenLog 함수는 주로 로그 시스템을 열고 후속 Syslog 호출을위한 로깅 환경을 제공하는 데 사용됩니다. 로그가 성공적으로 열리지 않으면 일반적으로 로그 대상이 올바르게 설정되지 않았거나 PHP가 로그 시스템의 구성과 일치하지 않기 때문입니다.
로그 대상 경로 확인 : OpenLog 의 대상 경로가 유효한지 확인하십시오. log_local0 과 같은 사전 정의 된 상수를 사용하는 경우 시스템의 해당 로그 파일이 존재하고 쓸 수 있는지 확인하십시오.
시스템이 Syslog를 지원하는지 확인하십시오 . 일부 플랫폼, 특히 Windows에서 Syslog가 지원되지 않을 수 있습니다. 이 경우 Error_Log 함수를 사용하여 로그를 사용하거나 다른 로그 라이브러리 사용을 고려할 수 있습니다.
권한 점검 : PHP 프로세스에 로그 파일 또는 로그 서비스에 액세스 할 수있는 권한이 있는지 확인하십시오. Linux 시스템 인 경우 /var /log 및 기타 로그 디렉토리의 쓰기 권한을 확인하십시오.
OpenLog 함수 플래그 의 두 번째 매개 변수는 로깅 방식을 지정하는 데 사용됩니다. 예를 들어, log_pid는 프로세스 ID를 로그에 기록하고 Log_Cons는 로그를 콘솔로 출력합니다. 개발자가 요구 사항에 따라 플래그를 합리적으로 설정하지 않으면 로그 정보가 예상에 따라 불완전하거나 일치하지 않을 수 있습니다.
합리적인 사용 플래그 : 실제 요구에 따라 플래그 매개 변수를 설정합니다. 프로세스 ID를 기록 해야하는 경우 log_pid를 사용할 수 있습니다. 오류 메시지를 실시간으로 콘솔에 출력하려면 log_cons를 사용할 수 있습니다.
조합 플래그 : 비트 연산자가 여러 플래그를 결합 할 수 있습니다. 예를 들어, log_pid | log_cons는 프로세스 ID와 출력 로그를 콘솔에 동시에 기록 할 수 있습니다.
로그 메시지의 형식은 일반적으로 OpenLog 함수의 세 번째 매개 변수 시설 과 우선 순위 에 의해 결정됩니다. 이 두 매개 변수가 제대로 설정되지 않으면 로그 출력이 예상 형식을 충족하지 못하거나 정보가 프로그램 상태를 정확하게 반영 할 수 없습니다.
시설 및 우선 순위의 합리적인 선택 : 시설은 로그의 소스를 지정하는 반면 우선 순위는 로그의 중요성을 지정합니다. 예를 들어, log_user는 가장 일반적으로 사용되는 로그 소스이며 Log_Info , log_err 등은 다른 로그 레벨을 나타내는 데 사용됩니다. 실제 요구에 따라이 두 매개 변수를 조정하십시오.
사용자 정의 로그 형식 : 로그를 녹음 할 때 syslog 함수의 서식 함수를 사용하여 로그 정보의 가독성과 무결성을 보장 할 수 있습니다.
OpenLog 함수는 일반적으로 로깅 시스템이 올바르게 닫히도록 CloseLog 함수와 함께 사용됩니다. CloseLog를 호출하는 것을 잊어 버린 경우 로그 시스템 리소스가 해제되지 않거나 시스템이 더 이상 새 로그 메시지를받지 않을 수 있습니다.
CloseLog 함수를 제 시간에 호출하십시오 . 로깅이 완료된 후 CloseLog가 호출되어 로그 시스템을 올바르게 닫고 리소스를 릴리스하도록 요청하십시오.
Try-Catch 문을 사용하십시오 . 예외가 발생하면 로그를 올바르게 닫을 수 있도록 로그 작업 코드를 Try-Catch 문장 블록에 넣고 마지막 부분에서 CloseLog를 호출 할 수 있습니다.
높은 동시성 애플리케이션 시나리오에서 합리적인 로깅 전략이 수행되지 않으면 너무 많은 로그가 성능 병목 현상으로 이어지고 시스템에 충돌 할 수 있습니다.
로그 레벨 감소 : 생산 환경에서 로그 레벨은 일반적으로 너무 많은 디버그 정보를 기록하지 않도록 log_err 또는 log_warning 으로 설정됩니다. 개발 환경은 log_debug 와 같은보다 자세한 레벨을 사용할 수 있습니다.
로그 회전 메커니즘 : 로그 회전 메커니즘을 설정하여 너무 많은 로그를 여러 파일로 나누기 위해 너무 큰 로그 파일을 피하십시오. 대부분의 로깅 시스템은 자동 회전을 지원하며 해당 매개 변수를 사용할 때는 구성해야합니다.
비동기 로깅 : 대기열 또는 캐시를 통해 로그 정보를 비동기로 쓰면 시스템 성능에 대한 동기 쓰기 작업의 영향을 줄일 수 있습니다.