xdebug - 원격 로그 시간 오류

xdebug - 원격 로그 시간 오류

xdebug 로그 시간이 항상 2시간 앞당겨지는 것을 확인했습니다. 예를 들어, 지금은 오전 9시 15분인데 로그가 오전 7시 15분에 생성되었다고 나와 있습니다.

터미널에서 실행 하면 date오전 9시 15분이 됩니다.

답변1

현재 상황에 대한 귀하의 의견을 바탕으로 Thu Aug 1 15:13:26 CEST 2019제 이론은 xdebug 로그가 CEST보다 2시간 빠른 UTC로 실행(또는 로그)된다는 것입니다. 불행히도 시간대는 출력의 일부가 아닌 것 같습니다. 이로 인해 실제 시간에 대한 상호 참조가 모호해집니다.

내가 하나 찾았어스택 오버플로 포스트date.timezone값을 원하는 시간대로 설정한다고 언급되어 있습니다 . 또한 다음과 같이 말합니다.

파일(php.ini) 끝에 xdebug 확장자를 로드하는 것이 가장 좋습니다.

이것php.ini 명령 목록표시된 기본값은 date.timezone비어 있으며 UTC로 대체될 수 있습니다.

CEST유효한 값이 아니므로 다음에서 지역을 선택하는 것이 좋습니다.유효한 PHP 유럽 시간대 목록(또는 경우에 따라 남극 대륙이나 아프리카). 자세한 내용은 다음을 참조하세요.PHP가 지원하는 전체 시간대 목록.

답변2

date.timezone설정 php.ini하고 xdebug.ini로드해도 실행이 되지 않습니다.

내 Xdebug 로그(Xdebug 3에서는 더 이상 "원격 로그"라고 하지 않음)가 여전히 UTC시간을 표시합니다. Xdebug 소스 코드를 편집하고 다시 컴파일하는 것 외에는 이 설정을 변경할 수 있는 방법을 찾을 수 없습니다. Xdebug의 소스 코드에는 시간을 현지 시간으로 변환하는 내용이 없으므로 이것이 유일한 방법일 수도 있습니다.

바라보다내 계산기 답변자세한 내용은 내 자신의 질문입니다. 그러나 여기에 요점이 있습니다.

내가 해야 할 일은 196번 라인 부근에서 함수를 으로 gmtime()변경 하는 것뿐이었습니다 .localtime()src/lib/timing.cchar* xdebug_nanotime_to_chars

이것은 작동하지만 시간대 코드를 로그에 인쇄하고 싶습니다.

그러기 위해서는 더 많은 변화를 주어야 했습니다. 시간대 문자열을 반환하는 함수를 만든 다음 해당 함수를 src/lib/log.c동일한 파일()의 로그 열기/닫기 함수에 추가했습니다.

관련 정보