CodeIgniter 미들웨어: 애플리케이션에 성능 로깅 및 오류 로깅 추가
인용문:
성능 로깅 및 오류 로깅은 웹 애플리케이션을 개발할 때 매우 중요합니다. 애플리케이션 성능을 효과적으로 모니터링하고 최적화하기 위해서는 애플리케이션의 실행 시간을 확보하고 애플리케이션에서 발생한 오류 정보를 기록할 수 있어야 합니다. CodeIgniter는 애플리케이션에 성능 로그 및 오류 기록 기능을 쉽게 추가할 수 있는 미들웨어 기능을 제공합니다. 이 글에서는 CodeIgniter에서 미들웨어를 사용하여 성능 로깅 및 오류 기록 기능을 구현하는 방법을 소개합니다.
1. 미들웨어 생성
먼저 미들웨어 클래스를 생성해야 합니다. CodeIgniter에서 미들웨어 클래스는 CI_Middleware 클래스를 상속받은 클래스입니다. 미들웨어 클래스를 application/middleware 디렉토리에 배치할 수 있습니다(디렉토리가 없으면 수동으로 생성해야 합니다). 다음은 미들웨어 클래스 예시의 코드입니다.
<?php defined('BASEPATH') OR exit('No direct script access allowed'); class PerformanceLoggerMiddleware extends CI_Middleware { public function handle(RequestInterface $request, Closure $next) { // 记录请求开始时间 $startTime = microtime(true); // 执行下一个中间件或路由处理器 $response = $next($request); // 计算请求执行时间 $endTime = microtime(true); $executionTime = $endTime - $startTime; // 将执行时间记录到日志中 log_message('info', 'Request execution time: ' . $executionTime); return $response; } }
위 코드에서는 PerformanceLoggerMiddleware라는 미들웨어 클래스를 만들었습니다. 이 미들웨어 클래스는 CI_Middleware 클래스를 상속하고 핸들 메소드를 구현합니다. 핸들 메소드는 RequestInterface 객체와 Closure 객체를 매개변수로 받습니다. 핸들 메소드에서는 먼저 요청이 시작된 시간을 기록한 후 다음 미들웨어나 경로 프로세서를 실행한 후 요청이 실행된 시간을 계산하여 애플리케이션의 로그에 기록합니다.
2. 미들웨어 등록
다음으로 CodeIgniter에 미들웨어를 등록해야 합니다. 이를 달성하려면 몇 가지 구성을 수행해야 합니다. 먼저 application/config/config.php 파일을 열고 다음 구성 항목을 찾아 true로 설정합니다.
$config['enable_hooks'] = true;
그런 다음 application/config/hooks.php 파일을 열고 아래 코드 조각에 다음 코드를 추가합니다.
$hook['pre_system'][] = [ 'class' => 'PerformanceLoggerMiddleware', 'function' => 'handle', 'filename' => 'PerformanceLoggerMiddleware.php', 'filepath' => 'middleware', ];
위 코드에서는 PerformanceLoggerMiddleware 클래스를 pre_system 후크의 처리 함수로 등록합니다. 이는 각 요청이 처리되기 전에 PerformanceLoggerMiddleware의 핸들 메소드가 실행된다는 것을 의미합니다.
3. 미들웨어 테스트
이제 미들웨어 생성 및 등록이 완료되었으니 테스트해보겠습니다. 애플리케이션의 메인 컨트롤러를 수정하여 이를 테스트할 수 있습니다. 다음은 컨트롤러 코드의 예입니다.
<?php defined('BASEPATH') OR exit('No direct script access allowed'); class Welcome extends CI_Controller { public function index() { sleep(1); // 模拟一个耗时操作 $this->load->view('welcome_message'); } }
위 코드에서는 시간이 많이 걸리는 작업(sleep 함수 사용)을 시뮬레이션한 다음 뷰 파일을 로드합니다. 컨트롤러에 액세스하면 미들웨어는 요청의 실행 시간을 기록하고 이를 애플리케이션의 로그 파일에 기록합니다.
4. 로그 보기
마지막으로 애플리케이션의 로그 파일을 열면 미들웨어가 기록한 성능 로그를 볼 수 있습니다. CodeIgniter에서 기본 로그 파일은 application/logs 디렉터리에 저장됩니다. 예를 들어 로그 파일의 내용은 다음과 같습니다.
INFO - 2019-01-01 10:00:00 --> Request execution time: 1.02345204353
위 예에서는 요청의 실행 시간이 기록되는 것을 볼 수 있습니다.
요약:
CodeIgniter에서 미들웨어를 사용하면 애플리케이션에 성능 로깅 및 오류 로깅 기능을 쉽게 추가할 수 있습니다. 이번 글에서는 미들웨어 클래스를 생성하고 이를 CodeIgniter에 등록하는 방법을 소개했습니다. 간단한 예를 통해 미들웨어를 사용하여 요청 실행 시간을 기록하고 이를 애플리케이션의 로그 파일에 기록하는 방법을 보여줍니다. 이러한 접근 방식은 웹 애플리케이션을 더 잘 모니터링하고 최적화하고 더 나은 사용자 경험을 제공하는 데 도움이 될 수 있습니다.
위 내용은 CodeIgniter 미들웨어: 애플리케이션에 성능 로깅 및 오류 로깅 추가의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!