고성능 PHP 로깅 솔루션의 상상
고성능 PHP 로깅 솔루션
로깅은 두 단계로 완료됩니다.
- 로그 정보는 실시간으로 메모리 캐시에 기록되어 성능 오버헤드를 최소화합니다.
- crontab은 메모리 캐시에서 정기적으로 수집하여 데이터베이스에 씁니다. 또는 파일
특정 알고리즘: (laravel 프레임워크)
- 상수 설정: imax=10000000, 두 변수 iwrite=1, iread =1. (iwrite 로그 쓰기 포인터, iread 로그 읽기 포인터, iread <=iwrite, 두 변수 값은 메모리 캐시에 저장됩니다)
- 로그가 생성될 때마다 "Cache::increment(iwrite)"를 사용하여 iwrite의 증분 값을 가져옵니다. 값이 imax보다 큰 경우 1로 재설정하고 저장합니다. 키: 'log_'+iwrite, 값: 로그 내용
-
crontab은 30초마다 명령줄을 호출하고 로그를 수집하며 "Cache::increment(iread)를 사용합니다. " iread의 증분 값을 얻으려면 iwrite와 같으면 중지하고 값이 imax보다 크면 1로 재설정하고 캐시에서 로그를 읽어 일괄적으로 저장합니다. 마지막으로 캐시에서 로그를 삭제합니다.
메모리 캐시는 apc, xcache 등을 사용할 수 있습니다.
Cache::increment 는 laravel 프레임워크에 속합니다.
내장 메소드, 라라벨 프레임워크가 아닌 경우 직접 캡슐화할 수 있습니다.
아직 시간이 없어서 내 생각을 먼저 기록할게.
나중에 시간이 나면 연습한 후 코드를 보내보세요.
이상으로 고성능 PHP 로그 솔루션에 대한 아이디어를 다양한 측면에서 소개하였습니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.