programing

디버깅 로그 인쇄 방법

kingscode 2022. 10. 30. 20:32
반응형

디버깅 로그 인쇄 방법

PHP 코드를 디버깅하고 싶은데 로그나 파일을 스크리닝으로 출력하면 될 것 같습니다.

PHP 코드로 로그를 인쇄하려면 어떻게 해야 하나요?

늘 하던 대로print/printf콘솔이 아닌 HTML 출력으로 이동하는 것 같습니다.

PHP 코드를 실행하는 Apache 서버가 있습니다.

mod_php가 stderr을 Apache 로그에 매핑하는 것은 잘 알려져 있지 않습니다.그리고 그 흐름도 있기 때문에file_put_contents('php://stderr', print_r($foo, TRUE))가치를 떨어뜨릴 것이다$fooApache 에러 로그에 기록합니다.

error_log(print_r($variable, TRUE)); 

도움이 될지도 모른다

error_log를 사용하여 서버에 오류 로그 파일(또는 필요에 따라 다른 옵션 파일)을 전송할 수 있습니다.

Linux 를 사용하고 있는 경우:

file_put_contents('your_log_file', 'your_content');

아니면

error_log ('your_content', 3, 'your_log_file');

그 후 콘솔로

tail -f your_log_file

파일에 입력된 마지막 행이 계속 표시됩니다.

당신은 생각을 바꿀 필요가 있어요.당신은 PHP를 쓰고 있는 것이지 쓰는 데 익숙한 것이 아닙니다.콘솔 환경에서는 PHP에서의 디버깅이 이루어지지 않습니다.

PHP에는 3가지 카테고리의 디버깅솔루션이 있습니다.

  1. 웹 페이지로 출력합니다(더 자세한 내용은 dBug 라이브러리 참조).
  2. 로그 파일에 쓰기
  3. xDebug를 사용한 세션 디버깅 중

PHP가 익숙한 다른 언어처럼 동작하도록 하는 대신 이러한 언어를 사용하는 것을 배우십시오.

콘솔에서 디버깅하고 있습니까?PHP 디버깅에는 다양한 옵션이 있습니다.빠른 디버깅과 더티 디버깅에 가장 일반적으로 사용되는 함수는 var_dump입니다.

참고로 var_dump는 훌륭하고 많은 사람들이 그것만으로 모든 것을 할 수 있지만, 그 외에 다른 툴이나 테크닉도 있습니다.

웹 페이지에서 디버깅할 때 도움이 되는 정보, 랩<pre> </pre>dump 스테이트먼트 주위에 태그를 부착하여 어레이 및 객체의 올바른 형식을 제공합니다.

예:

<div> some html code ....
      <a href="<?php $tpl->link;?>">some link to test</a>
</div>

      dump $tpl like this:

    <pre><?php var_dump($tpl); ?></pre>

마지막으로 오류 처리 디버깅이 오류를 표시하도록 설정되어 있는지 확인합니다.서버 설정에 액세스 할 수 없는 경우는, 스크립트의 상부에 이것을 추가할 필요가 있는 경우가 있습니다.

error_reporting(E_ALL);
ini_set('display_errors', '1');

행운을 빕니다.

다음과 같은 파일에 쓸 수도 있습니다.

$logFilePath = '../logs/debug.text';
ob_start();

// if you want to concatenate:
if (file_exists($logFilePath)) {
    include($logFilePath);
}
// for timestamp
$currentTime = date(DATE_RSS);

// echo log statement(s) here
echo "\n\n$currentTime - [log statement here]";

$logFile = fopen($logFilePath, 'w');
fwrite($logFile, ob_get_contents());
fclose($logFile);
ob_end_flush();

php가 파일에 액세스하여 쓸 수 있도록 적절한 권한이 설정되어 있는지 확인합니다(775).

Zend와 같은 프레임워크를 통합하지 않으려면 trigger_error 메서드를 사용하여 php 오류 로그에 기록할 수 있습니다.

방법은 trigger_error 입니다.

 trigger_error("My error");

어레이나 오브젝트를 넣을 수 없기 때문에

var_dump

php curl 모듈을 사용하여 http://liveoutput.com/으로 전화를 걸 수 있습니다.이 기능은 php.ini에 특정 제한이 존재하여 사용을 제한하는 안전한 기업 환경에서 매우 효과적입니다.file_put_contents.

이것은 PHP 디버깅과 로깅을 위한 훌륭한 도구입니다.PHP 디버거와 로거

3줄의 코드만으로 바로 사용할 수 있습니다.js 콘솔에 메시지를 전송하여 에이잭스 디버깅을 수행할 수 있으며 오류 핸들러를 대체할 수 있습니다.또한 var_dump() 및 print_r() 등의 변수에 대한 정보도 덤프하지만 읽기 쉬운 형식으로 덤프합니다.아주 좋은 도구입니다!

지금까지 많은 디버깅을 사용했지만 개발 시 디버깅을 해야 하고 localhost에서 개발하기 때문에 다른 사용자의 조언을 따라 브라우저의 JavaScript 디버깅콘솔에 글을 씁니다(http://www.codeforest.net/debugging-php-in-browsers-javascript-console) 참조).

즉, 브라우저에서 PHP가 생성하는 웹 페이지를 보고 F12 키를 눌러 디버깅 트레이스를 빠르게 표시하거나 숨길 수 있습니다.

디버거, CSS 레이아웃 등을 위한 개발자 툴을 계속 보고 있기 때문에, 거기서 PHP 로건을 보는 것이 타당합니다.

만약 누군가 우리에게 그 코드를 결정한다면, 나는 작은 변경을 가했다.끝나고

function debug($name, $var = null, $type = LOG) {

나는 덧붙였다.

$name = 'PHP: ' . $name;

이는 서버측 PHP가 JavaScript를 포함하는HTML을 생성하기 때문에 PHP와 JS의 출력을 구별하는 것이 편리하다고 생각하기 때문입니다.

(주의: 현재 PHP, JS, 데이터베이스 액세스 등 다양한 출력 유형을 켜고 끌 수 있도록 업데이트 중입니다.)

나는 cakephp를 사용하기 때문에 다음을 사용한다.

$this->log(YOUR_STRING_GOES_HERE, 'debug');

다음을 사용할 수 있습니다.

<?php
echo '<script>console.log("debug log")</script>';
?>

사용할 수 있습니다.

<?php
{
    AddLog("anypage.php","reason",ERR_ERROR);
}
?>

또는 로그로 그 스테이트먼트를 인쇄하려면

AddLog("anypage.php","string: ".$string,ERR_DEBUG_LOW);

언급URL : https://stackoverflow.com/questions/6079492/how-to-print-a-debug-log

반응형