error_log() 함수는 서버 오류 로그, 파일 또는 원격 대상에 오류 메시지를 보냅니다. 구문
error_log(message,type,destination,headers);
parameters | description |
---|---|
message | 이 필요합니다. 기록할 오류 메시지를 지정합니다. |
type |
선택사항입니다. 오류를 어디로 보내야 하는지 지정합니다. 가능한 값:
|
destination | 선택사항. 오류 메시지의 대상을 지정합니다. 이 값은 type 매개변수 값에 따라 결정됩니다. |
헤더 |
선택사항입니다. From, Cc 및 Bcc와 같은 추가 헤더를 지정합니다. 이 메시지 유형은 mail()과 동일한 내장 기능을 사용합니다. message_type이 1로 설정된 경우에만 사용됩니다. CRLF(rn)는 여러 헤더를 구분하는 데 사용해야 합니다. |
사실 우리 입장에서는 단순함을 위해 일반적으로 유형 3을 로그에 직접 사용하고 필요한 파일에 로그 파일을 쓰는 것이 더 적합합니다.
error_log() 함수의 간단한 사용법을 설명하기 위해 예를 들어보겠습니다. 우리 데이터베이스 추상 클래스가 PEAR::DB 클래스를 사용한다고 가정합니다. 이제 프로그램에 실행 오류가 있는지 기록하고 싶습니다. 그런 다음 error_log()를 사용하여 SQL 문의 실행 오류나 실패를 기록합니다. 적어도 PEAR::DB 클래스는 실행 결과 개체에 오류가 있는지 확인하기 위한 DB::isError() 메서드를 제공합니다. 특정 SQL 문을 실행하는 동안 오류가 발생했는지 확인한 다음 로그를 기록할지 여부를 고려할 수 있습니다. 동시에 개체에는 잘못된 SQL 문을 기록하는 userinfo 속성이 있습니다.
function logError($object) { if(DB::isError($object)) { error_log(date("[Y-m-d H:i:s]")." -[".$_SERVER['REQUEST_URI']."] :".$object -> userinfo."\n", 3, "/tmp/php_sql_err.log"); return true; } return false; }
이 함수는 잘못된 SQL이 발견되면 시간, 현재 페이지 및 잘못된 SQL 문 정보를 자동으로 /tmp/php_sql_err.log 파일에 기록합니다. 그런 다음 프로그램을 디버깅할 때, 데이터 추출이 잘못된 것을 발견했습니다. 또는 데이터 추출이 없으면 /tmp/php_sql_err.log 파일을 보고 오류 페이지와 잘못된 SQL 문을 볼 수 있습니다.
물론, SQL 쿼리를 실행하는 프로그램에서 이 함수를 사용해야 합니다. 예를 들어 뉴스 정보를 추출하는 함수를 작성한다면:
function getNewsContent($news_id, $field="") { global $db; $result = $db->getRow("SELECT $field FROM news WHERE news_id = '$news_id'"); if (logError($result)) { return false; } return $result; }
SQL이 잘못된지 확인하고, 잘못된 경우 반환합니다. false이면 로그를 확인하여 함수가 예상대로 실행되는지 확인할 수 있습니다.
tail /tmp/php_sql_err.log를 실행합니다.
다음과 유사한 정보를 볼 수 있습니다.
[2006-01-12 11:44:34] -[/news_list.php?news_id=1] :SELECT FROM news WHERE news_id = '1' [nativecode=1064 ** SQL 구문에 오류가 있습니다. 'FROM news WHERE news_id = '1' ] 근처에서 사용할 올바른 구문에 대해서는 MySQL 서버 버전에 해당하는 설명서를 확인하세요.
단위 테스트를 수행할 수 있습니다.
물론, PHP 개발을 용이하게 하기 위해 error_log() 함수를 사용하여 더 많은 오류 로그를 기록할 수도 있습니다.
<code> $address = post('address'); $group_add = explode(',',$address); $url ="/usr/local/apache/eyoung/tmp/maillog_".date("Y-m-d").".log"; foreach($group_add as $value) { /** {{{ modify by muzhaoyang -2006.12.13- 记log * 已空格分隔数据,记录的数据为写文本时间 拉票人ID 选手ID 发信地址 */ $logstr=date("H:i:s")." ".$uid." ".$star_uid." ".$value."\n"; error_log($logstr,3,$url); //}}} } </code>
위 내용은 PHP error_log() 함수 사용 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!