웹사이트 프로그램 개발 과정에서는 디버깅이 필요한 경우가 많으며, 문제 발견 및 이벤트 복구를 용이하게 하기 위해 출시 단계에서 작업 로그도 기록해야 합니다. 이를 위해서는 디버깅 및 로깅 기능이 필요합니다.
디버깅에 사용되는 함수와 오류 기록에 사용되는 함수는 아래와 같습니다.
사용 방법은 매우 간단하며, 날짜를 기준으로 자동으로 로그 파일이 생성됩니다.
//디버깅할 때 여러 매개변수를 사용할 수 있습니다:
sysdebug("안녕하세요");
sysdebug("안녕하세요", "호랑이가 지금 오고 있습니다");
//오류 기록도 마찬가지입니다.
syserror("오류");
syserror("error", "안타깝게도 호랑이는 죽었습니다. ", "우리는 슬프습니다");
php 디버깅 및 로깅 기능은 다음과 같습니다.
/**
* 디버깅 정보 기록
*/
함수 sysdebug($msg) {
if (정의됨("DEBUG_MODE")) {
//TODO는 디버깅 스위치를 감지하고 게시할 때 인쇄하지 않습니다
$params = func_get_args()
$traces = debug_backtrace()
$trace = array_pop($traces)
sysrecord($params, $trace, '디버그')
}
}
/**
* 오류 메시지 기록
*/
함수 syserror($msg) {
$params = func_get_args()
$traces = debug_backtrace()
$trace = array_pop($traces)
sysrecord($params, $trace, '오류')
}
/**
* 파일 쓰기
* @ignore
*/
함수 sysfile($filename, $msg, $mode = null) {
$path = 디렉토리명($filename)
if (!file_exists($path)) {
mkdir($경로, 0666, 참)
}
$플래그 = LOCK_EX;
if ($mode) {
스위치($mode) {
케이스 "추가":
$flag = FILE_APPEND
휴식
사례 "a":
$flag = FILE_APPEND
휴식
기본:
휴식
}
}
file_put_contents($filename, $msg, $flag)
}
/**
* 기록정보
* @ignore
*/
함수 sysrecord($params, $trace, $level) {
$path = dirname(__FILE__) . "/로그/"
//TODO 로그 저장 디렉터리를 수정하는 것이 가장 좋습니다
$file = $trace['파일']
$func = $trace['함수']
if ($func == "sys$level") {
$func = ''
}
$filename = $path . "$level/" . 날짜("Y-m-d") .
$msg = "[" . date("m-d H:i:s") . "] 파일:"" . basename($file) . "" Func:"" . $func . "" Msg:" . $params) . "rn"
sysfile($filename, $msg, '추가')
}