본문 바로가기
PHP

[PHP]PHP에서 로그 남기기

by teamnova 2024. 1. 8.

웹 개발을 처음 하게 되면 확인하고 싶은 변수들이나 에러를 브라우저 콘솔을 통해 확인하는 경우가 있습니다.

하지만 이런 방식은 보안에도 좋지 않을 뿐더러 디버깅에 충분한 정보를 얻기 어려운 경우가 많습니다.


그래서 오늘은 PHP 를 이용해 직접 에러 로그를 찍는 방법을 간단하게 알아보겠습니다.

PHP에서 로그를 남기는 가장 일반적인 방법은 내장된 `error_log()` 함수를 사용하는 것입니다. 또한, 사용자 정의 로그 파일을 만들어 특정 정보를 기록할 수도 있습니다.

1. `error_log()` 함수 사용하기

PHP의 `error_log()` 함수는 오류 메시지를 서버의 오류 로그, 파일, 또는 메일로 보낼 수 있습니다.

예제 코드

<?php
// 오류 메시지
$error_message = "이것은 오류 로그의 예입니다.";

// 시스템 로그에 메시지 기록 (보통 /var/log/apache2/error.log 등의 경로에 저장됨)
error_log($error_message);

// 사용자 정의 파일에 메시지 기록
error_log($error_message, 3, "/path/to/your/custom.log");

// 이메일로 메시지 보내기
error_log($error_message, 1, "someone@example.com");
?>



- `error_log()` 함수는 첫 번째 인자로 전달된 메시지를 로그로 남깁니다.
- 두 번째 인자는 로그의 타입을 지정하며, 기본값은 0(시스템 로그)입니다.
- 세 번째 인자는 타입이 3(파일) 또는 1(이메일)일 때 파일 경로 또는 이메일 주소를 지정합니다.

2. 사용자 정의 로그 파일 만들기

`fopen()`과 `fwrite()` 함수를 사용하여 사용자 정의 로그 파일을 만들고 관리할 수 있습니다.

예제 코드

<?php
// 로그 파일 경로
$log_file = "/path/to/your/custom.log";

// 로그 메시지
$log_message = "[" . date("Y-m-d H:i:s") . "] 오류 발생\n";

// 파일 열기 (파일이 없으면 생성)
$file_handle = fopen($log_file, "a");

// 파일에 메시지 기록
fwrite($file_handle, $log_message);

// 파일 닫기
fclose($file_handle);
?>


- `fopen()` 함수는 파일을 열고 파일 핸들을 반환합니다. 여기서 `"a"` 모드는 파일이 존재하면 파일 끝에 데이터를 추가하고, 파일이 없으면 새 파일을 생성합니다.
- `fwrite()` 함수는 열린 파일에 데이터를 쓰는 데 사용됩니다.
- `fclose()` 함수는 열린 파일 핸들을 닫고 시스템 자원을 해제합니다.