IT story

오류와 경고를 파일에 기록하는 방법은 무엇입니까?

hot-time 2020. 4. 22. 08:13
반응형

오류와 경고를 파일에 기록하는 방법은 무엇입니까?


모든 오류와 경고를 켜고 파일에 기록하지만 스크립트 내에서 모든 것을 설정하는 방법 (php.ini에서 아무것도 변경하지 않음). 파일 이름을 정의하고 모든 오류와 경고가 파일에 기록되도록하고 싶습니다.


다음 코드를 사용하십시오.

ini_set("log_errors", 1);
ini_set("error_log", "/tmp/php-error.log");
error_log( "Hello, errors!" );

그런 다음 파일을보십시오.

tail -f /tmp/php-error.log

또는 2008 년 부터이 블로그 항목에php.ini 설명 된대로 업데이트하십시오 .


보다

  • error_log — 어딘가에 오류 메시지 보내기

error_log("You messed up!", 3, "/var/tmp/my-errors.log");

오류나 경고 또는 로그해야 할 모든 것이 발생할 때마다이 함수를 호출하도록 자체 오류 처리기오류 처리를 사용자 정의 할 수 있습니다 . 자세한 내용 은 PHP 매뉴얼장 오류 처리 를 참조하십시오


다음 코드를 PHP / 인덱스 파일 맨 위에 두십시오.

error_reporting(E_ALL); // Error engine - always TRUE!

ini_set('ignore_repeated_errors', TRUE); // always TRUE

ini_set('display_errors', TRUE); // Error display - FALSE only in production environment or real server

ini_set('log_errors', TRUE); // Error logging engine

ini_set('error_log', 'your/path/to/errors.log'); // Logging file path

ini_set('log_errors_max_len', 1024); // Logging file size

이 코드를 .htaccess에 추가하십시오 ( php.ini / ini_set 함수 의 대안으로 ).

<IfModule mod_php5.c>
php_flag log_errors on 
php_value error_log ./path_to_MY_PHP_ERRORS.log
# php_flag display_errors on 
</IfModule>

* 언급 한대로 : 이것은 Apache 유형 서버용입니다.


저의 개인적인 짧은 기능입니다

# logging
/*
[2017-03-20 3:35:43] [INFO] [file.php] Here we are
[2017-03-20 3:35:43] [ERROR] [file.php] Not good
[2017-03-20 3:35:43] [DEBUG] [file.php] Regex empty

mylog ('hallo') -> INFO
mylog ('fail', 'e') -> ERROR
mylog ('next', 'd') -> DEBUG
mylog ('next', 'd', 'debug.log') -> DEBUG file debug.log
*/
function mylog($text, $level='i', $file='logs') {
    switch (strtolower($level)) {
        case 'e':
        case 'error':
            $level='ERROR';
            break;
        case 'i':
        case 'info':
            $level='INFO';
            break;
        case 'd':
        case 'debug':
            $level='DEBUG';
            break;
        default:
            $level='INFO';
    }
    error_log(date("[Y-m-d H:i:s]")."\t[".$level."]\t[".basename(__FILE__)."]\t".$text."\n", 3, $file);
}

log_errorsphp.ini 구성 옵션을 살펴보십시오 . 원하는대로하는 것 같습니다. error_log옵션을 사용하여 자체 로깅 파일을 설정할 수도 있다고 생각합니다 .

log_errors지시문이로 설정 되면 OnPHP가보고 한 모든 오류는 서버 로그 또는로 지정된 파일에 기록됩니다 error_log. ini_set필요한 경우 이러한 옵션을 설정할 수도 있습니다 .

( display_errors이 옵션이 활성화 된 경우 php.ini에서 비활성화해야합니다.)


또한이 기능을 사용하려면 "AllowOverride Options"지시문이 필요합니다. (아파치 2.2.15)

참고 URL : https://stackoverflow.com/questions/3531703/how-to-log-errors-and-warnings-into-a-file

반응형