복붙노트

오류 및 경고를 파일에 기록하는 방법

PHP

오류 및 경고를 파일에 기록하는 방법

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

해결법

  1. ==============================

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

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

    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를 업데이트하십시오.

  2. ==============================

    2.만나다

    만나다

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

    오류 또는 경고 또는 로그해야하는 것이 발생할 때마다이 함수를 호출하는 자체 오류 처리기로 오류 처리를 사용자 정의 할 수 있습니다. 추가 정보는 PHP Manual의 Error Handling 장을 참조하십시오.

  3. ==============================

    3..htaccess에이 코드를 추가하십시오 (php.ini에 접근 할 수 없다면)

    .htaccess에이 코드를 추가하십시오 (php.ini에 접근 할 수 없다면)

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

    추신. 이는 Apache 유형 서버용입니다.

  4. ==============================

    4.이 코드들을 PHP / index 파일의 상단에 넣기 만하면됩니다 :

    이 코드들을 PHP / index 파일의 상단에 넣기 만하면됩니다 :

    error_reporting(E_ALL); // Error engine - always ON!
    
    ini_set('display_errors', TRUE); // Error display - OFF in production env or real server
    
    ini_set('log_errors', TRUE); // Error logging
    
    ini_set('error_log', 'your/path/to/errors.log'); // Logging file
    
    ini_set('log_errors_max_len', 1024); // Logging file size
    
  5. ==============================

    5.php.ini의 log_errors 설정 옵션을 살펴보십시오. 당신이 원하는대로 할 것 같습니다. 나는 당신이 너무 자신의 로깅 파일을 설정하는 error_log 옵션을 사용할 수 있다고 생각합니다.

    php.ini의 log_errors 설정 옵션을 살펴보십시오. 당신이 원하는대로 할 것 같습니다. 나는 당신이 너무 자신의 로깅 파일을 설정하는 error_log 옵션을 사용할 수 있다고 생각합니다.

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

    (이 옵션이 활성화되어 있으면 php.ini에서 display_errors를 비활성화해야합니다)

  6. ==============================

    6.그건 내 개인적인 짧은 기능이야.

    그건 내 개인적인 짧은 기능이야.

    # 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);
    }
    
  7. ==============================

    7.또한이 작업을 수행하려면 "AllowOverride Options"지시문이 필요합니다. (아파치 2.2.15)

    또한이 작업을 수행하려면 "AllowOverride Options"지시문이 필요합니다. (아파치 2.2.15)

  8. from https://stackoverflow.com/questions/3531703/how-to-log-errors-and-warnings-into-a-file by cc-by-sa and MIT license