>백엔드 개발 >PHP 튜토리얼 >고성능 PHP 로그 솔루션 아이디어

고성능 PHP 로그 솔루션 아이디어

WBOY
WBOY원래의
2016-07-28 08:26:481265검색

고성능 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 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.