나는 아래 매우 간단한 로거 클래스가, 내 목표는 로그 함수 호출을하고 로그 파일에 데이터를 기록 만에 상관없이 내가 로그 기능PHP에서 Logger에 Static 메소드 또는 Object를 사용하는 것이 더 낫습니까?
session_start();
class JD{
static private $log = array();
public function __construct(){ }
// Simple logger
// usage JD::log('debug', 'MySQLi Database Driver Initialized');
public static function log($mode, $message){
self::$log[] = '[' .$mode. '] = ' .$message. '\r\n';
$_SESSION['jdlog'] = self::$log;
}
}
에게 전화를 몇 번이나 페이지 당 1 개 쓰기를하지 않습니다 것입니다
위의 간단한 코드를 기반으로 테스트
JD::log('debug', 'MySQLi Database Driver Initialized');
JD::log('debug2', 'MySQLi Database Driver Initialized');
JD::log('debug3', 'MySQLi Database Driver Initialized');
JD::log('debug4', 'MySQLi Database Driver Initialized');
JD::log('debug5', 'MySQLi Database Driver Initialized');
JD::log('debug6', 'MySQLi Database Driver Initialized');
print_r($_SESSION['jdlog']);
좋아, 내가했던 것처럼 단지 정적 인 방법을 사용하는 것이 좋을 것으로 나타납니다하지만 파일에 로그 메시지의 배열을 작성 걸려 또는 어딘가에, 그래서 위의 내 현재 방법으로, 그것을 하나의 함수 호출마다 파일에 써야 할 것이다. 각 호출을 배열로 저장하는 ose.
일반 클래스 객체로 만들면 객체를 인스턴스화하고 필요에 따라 내 로그 함수를 호출 한 다음 배열을 파일에 쓰는 다른 함수를 호출하여 페이지 끝에 하나를 쓰고, 세션 저장도 취소 할 수 있습니다.
어떻게 이런 간단한 작업을 수행 할 수 있습니까?
안녕하세요, 좋은 생각입니다. 소멸자를 사용해 본 적이 한번도 없었습니다. 감사합니다. – JasonDavis