> 백엔드 개발 > PHP 튜토리얼 > CodeIgniter 미들웨어: 애플리케이션에 성능 로깅 및 오류 로깅 추가

CodeIgniter 미들웨어: 애플리케이션에 성능 로깅 및 오류 로깅 추가

PHPz
풀어 주다: 2023-07-31 12:12:02
원래의
1619명이 탐색했습니다.

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿