찾다

PHP 출력 로그

Apr 17, 2018 am 09:02 AM
php통나무산출

이 기사의 내용은 특정 참조 값이 있는 PHP 출력 로그에 관한 것입니다. 이제 모든 사람과 공유합니다. 도움이 필요한 친구들은 참조할 수 있습니다

https://www.cnblogs.com/yszr에서 재인쇄했습니다. /p /8489433.html
error_log('출력하려는 ​​정보', 3, 'E:workjiajiayueApplicationApiController1.txt');die;
php error_log 로그 사용 및 구성 기록


PHP 개발자의 경우 특정 시간에 한 번 제품을 사용하게 되면 이러한 오류로 인해 공개되는 경로, 데이터베이스 연결, 데이터 테이블 및 기타 정보로 인해 해커의 공격을 피하기 위해 display_errors 옵션을 즉시 꺼야 합니다. 하지만 어떤 제품을 사용하고 나면 필연적으로 오류가 발생하기 마련인데, 개발자에게 유용한 일부 오류 보고서를 기록하는 방법은 무엇일까요? 별도의 텍스트 파일에 오류 보고서를 기록할 수 있습니다. 오류 로그 기록은 개발자나 관리자가 시스템에 문제가 있는지 확인하는 데 도움이 될 수 있습니다. 프로그램의 오류 보고서를 오류 로그에 기록해야 하는 경우 PHP 구성 파일에서 log_errors 구성 지시어를 켜면 됩니다. 오류 보고서는 기본적으로 웹 서버의 로그 파일(예: Apache 서버의 오류 로그 파일 error.log)에 기록됩니다. 물론 오류 로그를 지정된 파일에 기록하거나 시스템 syslog에 보낼 수도 있습니다. 세부 사항은 다음과 같습니다.


1 지정된 파일을 사용하여 오류 보고서 로그를 기록합니다


오류 보고서 로그를 기록하려면 지정된 파일을 사용하십시오. 오류 보고서 로그는 지정된 파일을 사용하여 오류 로그를 기록합니다. 공격받을 가능성을 줄이기 위해 문서 루트 디렉터리 외부에 저장합니다. 그리고 파일은 PHP 스크립트를 실행하는 사용자(웹 서버 프로세스의 소유자)가 작성해야 합니다. Linux 운영 체제에서는 /usr/local/ 디렉터리의 error.log 파일이 오류 로그 파일로 사용되고 웹 서버 프로세스 사용자에게 쓰기 권한이 설정되어 있다고 가정합니다. 그런 다음 PHP 구성 파일에서 error_log 지시문의 값을 오류 로그 파일의 절대 경로로 설정합니다.
php.ini의 구성 지침을 다음과 같이 수정해야 합니다.
1. error_reporting = E_ALL ; 발생하는 모든 오류는 PHP에 보고됩니다.
2.display_errors = Off Report
3. log_errors = On                                            사용   사용 사용 사용 using using ‐ ''s'' 사용       ‐ ‐‐‐‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐  ‐         ; 로그 파일 위치
PHP 구성 파일을 위와 같이 지정하고 웹 서버를 다시 시작하세요. 이런 방식으로 PHP 스크립트 파일을 실행할 때 생성된 모든 오류 보고서는 브라우저에 표시되지 않지만 사용자가 지정한 오류 로그 /usr/local/error.log에 기록됩니다. 또한, error_reporting으로 정의된 규칙을 만족하는 모든 오류를 기록할 수 있을 뿐만 아니라, PHP의 error_log() 함수를 사용하여 사용자가 정의한 오류 메시지를 보낼 수도 있습니다.


이 함수의 프로토타입은 다음과 같습니다.

1. bool error_log ( string message [, int message_type [, string Destination [, string extra_headers]]] )

이 함수는 send 오류 정보는 웹 서버, TCP 서버의 오류 로그 파일 또는 지정된 파일로 전송됩니다. 이 함수는 성공하면 TRUE를, 실패하면 FALSE를 반환합니다. 첫 번째 매개변수 메시지는 필수이며 전송되는 오류 메시지입니다. 이 매개변수만 사용하는 경우 구성 파일 php.ini에 설정된 위치로 메시지가 전송됩니다. 두 번째 매개변수 message_type은 정수 값입니다. 0은 이를 운영 체제의 로그로 보내는 것을 의미하고, 1은 PHP의 Mail() 함수를 사용하여 메시지를 이메일 주소로 보내고, 네 번째 매개변수 extra_headers도 사용됩니다. 이때 세 번째 매개변수인 Destination은 대상 IP와 Port를 나타냅니다. 3. 해당 정보를 파일 대상에 저장합니다.


오라클 데이터베이스에 로그인하는 문제를 예로 들면, 이 함수의 사용법은 다음과 같습니다.




1. <?php      
2.     if(!Ora_Logon($username, $password)){     
 3.         error_log("Oracle数据库不可用!", 0);        //将错误消息写入到操作系统日志中   
4.     }   
5.     if(!($foo=allocate_new_foo()){   
6.         error_log("出现*烦了!", 1, ". mydomain.com");   //发送到管理员邮箱中   
7.     }  
8.     error_log("搞砸了!",   2,   "localhost:5000");     //发送到本机对应5000端口的服务器中   
9.     error_log("搞砸了!",   3,   "/usr/local/errors.log");  //发送到指定的文件中   
10. ?>





2. 운영체제 로그에 오류 정보가 기록됩니다


운영체제 로그에 오류 정보가 기록됩니다. . 오류 보고 운영 체제 로그에 기록될 수도 있지만 로그 관리는 운영 체제마다 약간 다릅니다. Linux에서는 오류 설명이 syslog로 전송되고, Windows에서는 오류가 이벤트 로그로 전송됩니다. syslog에 익숙하지 않다면 최소한 시스템 및 애플리케이션 실행과 관련된 메시지를 기록하는 API를 제공하는 UNIX 기반 로깅 도구라는 점은 알아 두십시오. Windows 이벤트 로그는 실제로 UNIX syslog와 동일하며 이러한 로그는 일반적으로 이벤트 뷰어를 통해 볼 수 있습니다. 운영 체제 로그에 오류 보고서를 쓰려면 구성 파일에서 error_log 지시문의 값을 syslog로 설정할 수 있습니다.


php.ini에서 수정해야 하는 특정 구성 지침은 다음과 같습니다.


1. error_reporting  =  E_ALL                   ;将会向PHP报告发生的每个错误   
2. display_errors = Off                            ;不显示 满足上条指令所定义规则的所有错误报告   
3. log_errors = On                             ;决定日志语句记录的位置   
4. log_errors_max_len = 1024                   ;设置每个日志项的最大长度   
5. error_log = syslog                          ;指定产生的错误报告写入操作系统的日志里




PHP에서는 일반 오류 출력 외에도 사용자 정의 메시지를 시스템 syslog로 보낼 수도 있습니다. 앞서 소개한 error_log() 함수를 통해 사용자 정의된 메시지를 syslog로 보낼 수도 있지만, PHP는 이 기능을 위해 함께 사용해야 하는 네 가지 전용 함수를 제공합니다.


은 다음과 같이 소개됩니다.


define_syslog_variables()


이 함수는 openlog(), syslog 및 closelog() 세 가지 함수를 사용하기 전에 호출되어야 합니다. 왜냐하면 이 함수가 호출되면 현재 시스템 환경에 따라 다음 세 가지 함수에 필요한 일부 상수가 초기화되기 때문입니다.


openlog()


현재 시스템의 로거에 대한 연결을 열어 시스템에 로그 메시지를 삽입할 준비를 합니다. 그리고 제공된 첫 번째 문자열 매개변수를 각 로그 메시지에 삽입하세요. 또한 이 함수는 로그 컨텍스트에서 사용될 두 개의 매개변수를 지정해야 합니다. 사용하려면 공식 문서를 참조하세요.


syslog()


이 함수는 시스템 로그에 사용자 정의된 메시지를 보냅니다. 두 개의 필수 매개변수가 필요합니다. 첫 번째 매개변수는 상수를 지정하여 메시지의 우선순위를 사용자 정의합니다. 예를 들어, LOG_WARNING은 일반적인 경고를 나타내고, LOG_EMERG는 시스템 충돌을 나타낼 수 있는 심각한 문제를 나타내며, 공식 문서에 따라 심각도를 나타내는 다른 상수를 사용할 수 있습니다. 두 번째 매개변수는 시스템 로그로 전송되는 사용자 정의 메시지입니다. 런타임 시 PHP 엔진에서 제공하는 메시지 문자열 또는 오류 문자열을 제공해야 합니다.


closelog()


이 함수는 시스템 로그에 사용자 정의된 메시지를 보낸 후 호출되며 openlog() 함수로 열린 로그 연결을 닫습니다.





구성 파일에서 사용자 정의 메시지를 syslog로 보내는 명령이 활성화되어 있는 경우 앞서 소개한 4가지 기능을 사용하여 시스템 로그에 경고 메시지를 보내고, syslog 구문 분석 도구를 통해 이를 볼 수 있습니다. 시스템 그리고 아래와 같이 PHP 프로그램에서 보낸 사용자 정의 메시지를 분석합니다.


1.  
2.     define_syslog_variables();   
3.     openlog("PHP5", LOG_PID , LOG_USER);   
4.     syslog(LOG_WARNING, "警告报告向syslog中发送的演示, 警告时间:".date("Y/m/d H:i:s"));  
5.     closelog();   
6. ?>

Windows 시스템을 예로 들어 "내 컴퓨터"를 마우스 오른쪽 버튼으로 클릭하여 관리 옵션을 선택한 다음 시스템 도구 메뉴에서 이벤트 보기 탐색기를 선택한 다음 애플리케이션 옵션을 찾으면 사용자 정의된 경고 메시지를 볼 수 있습니다. 위 코드는 이벤트의 일부인 시스템의 syslog 파일에 다음과 유사한 메시지를 생성합니다.


1. PHP5[3084], syslog에 경고 보고서를 보내는 데모, 경고 시간: 2009/03/ 26 04:09:11.


지정된 파일을 사용할지, syslog를 사용하여 오류 로그를 기록할지 여부는 웹 서버 환경에 따라 다릅니다. 웹 서버를 제어할 수 있는 경우 syslog 구문 분석 도구를 사용하여 로그를 보고 분석할 수 있으므로 syslog를 사용하는 것이 이상적입니다. 그러나 웹사이트가 공유 서버의 가상 호스트에서 실행되고 있는 경우 별도의 텍스트 파일을 사용하여 오류 로그를 기록할 수 있습니다.
         

관련 추천:

php는 모든 시간대 목록을 출력합니다

php는 로그 기능을 작성합니다

php는 로그 기능을 구현합니다

위 내용은 PHP 출력 로그의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
PHP 코드 최적화 : 메모리 사용 및 실행 시간을 줄입니다PHP 코드 최적화 : 메모리 사용 및 실행 시간을 줄입니다May 10, 2025 am 12:04 AM

tooptimizephpcodeforregedmemoryUsageancutionEcution-time, followthesesteps : 1) usereferencesinsteAdArgedArgedArgeDatureStoredUcememoryConsumption.2) leveragephp'sbuilt-infunctionslikearray_mapforfosterexecution

PHP 이메일 : 단계별 보내기 안내서PHP 이메일 : 단계별 보내기 안내서May 09, 2025 am 12:14 AM

phpisusedforendingemailsduetoitsintegrationwithsermailservices 및 externalsmtpproviders, 1) setupyourphpenvironmentwitheberverandphp, temailfuncpp를 보장합니다

PHP를 통해 이메일을 보내는 방법 : 예 및 코드PHP를 통해 이메일을 보내는 방법 : 예 및 코드May 09, 2025 am 12:13 AM

이메일을 보내는 가장 좋은 방법은 Phpmailer 라이브러리를 사용하는 것입니다. 1) Mail () 함수를 사용하는 것은 간단하지만 신뢰할 수 없으므로 이메일이 스팸으로 입력되거나 배송 할 수 없습니다. 2) Phpmailer는 더 나은 제어 및 신뢰성을 제공하며 HTML 메일, 첨부 파일 및 SMTP 인증을 지원합니다. 3) SMTP 설정이 올바르게 구성되었는지 확인하고 (예 : STARTTLS 또는 SSL/TLS) 암호화가 보안을 향상시키는 데 사용됩니다. 4) 많은 양의 이메일의 경우 메일 대기열 시스템을 사용하여 성능을 최적화하십시오.

고급 PHP 이메일 : 사용자 정의 헤더 및 기능고급 PHP 이메일 : 사용자 정의 헤더 및 기능May 09, 2025 am 12:13 AM

CustomHeadersAndAdAncedFeaturesInpHeAmailEnhanceFectionality.1) 1) CustomHeadersAdDmetAdataFortrackingand Categorization.2) htmlemailsallowformattingandinteractivity.3) attachmentSentUsingLibraries likePhpMailer.4) smtpauthenticimprpr

PHP & SMTP와 함께 이메일 보내기 안내서PHP & SMTP와 함께 이메일 보내기 안내서May 09, 2025 am 12:06 AM

PHP 및 SMTP를 사용하여 메일을 보내는 것은 PHPMailer 라이브러리를 통해 달성 할 수 있습니다. 1) phpmailer 설치 및 구성, 2) SMTP 서버 세부 정보 설정, 3) 이메일 컨텐츠 정의, 4) 이메일 보내기 및 손잡이 오류. 이 방법을 사용하여 이메일의 신뢰성과 보안을 보장하십시오.

PHP를 사용하여 이메일을 보내는 가장 좋은 방법은 무엇입니까?PHP를 사용하여 이메일을 보내는 가장 좋은 방법은 무엇입니까?May 08, 2025 am 12:21 AM

TheBesteptroachForendingeMailsInphPisusingThephPmailerlibraryDuetoitsReliability, featurerichness 및 reaseofuse.phpmailersupportssmtp, proversDetailErrorHandling, supportSattachments, andenhancessecurity.foroptimalu

PHP의 종속성 주입을위한 모범 사례PHP의 종속성 주입을위한 모범 사례May 08, 2025 am 12:21 AM

의존성 주입 (DI)을 사용하는 이유는 코드의 느슨한 커플 링, 테스트 가능성 및 유지 관리 가능성을 촉진하기 때문입니다. 1) 생성자를 사용하여 종속성을 주입하고, 2) 서비스 로케이터 사용을 피하고, 3) 종속성 주입 컨테이너를 사용하여 종속성을 관리하고, 4) 주입 종속성을 통한 테스트 가능성을 향상 시키십시오.

PHP 성능 튜닝 팁 및 요령PHP 성능 튜닝 팁 및 요령May 08, 2025 am 12:20 AM

phpperformancetuningiscrucialbecauseitenhancesspeedandefficies, thearevitalforwebapplications.1) cachingsdatabaseloadandimprovesResponsetimes.2) 최적화 된 databasequerieseiesecessarycolumnsingpeedsupedsupeveval.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

SecList

SecList

SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

안전한 시험 브라우저

안전한 시험 브라우저

안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

에디트플러스 중국어 크랙 버전

에디트플러스 중국어 크랙 버전

작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구