>  기사  >  백엔드 개발  >  PHP 디버깅 기능 및 로깅 기능 Sharing_php 기술

PHP 디버깅 기능 및 로깅 기능 Sharing_php 기술

WBOY
WBOY원래의
2016-05-16 20:24:251101검색

웹사이트 프로그램 개발 과정에서는 디버깅이 필요한 경우가 많으며, 문제 발견 및 이벤트 복구를 용이하게 하기 위해 출시 단계에서 작업 로그도 기록해야 합니다. 이를 위해서는 디버깅 및 로깅 기능이 필요합니다.

디버깅에 사용되는 함수와 오류 기록에 사용되는 함수는 아래와 같습니다.

사용 방법은 매우 간단하며, 날짜를 기준으로 자동으로 로그 파일이 생성됩니다.

코드 복사 코드는 다음과 같습니다.

//디버깅할 때 여러 매개변수를 사용할 수 있습니다:
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, '추가')
}


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