2014-06-20 6 views
2

WordPress는 PHP 오류 로그의 모든 타임 스탬프에 대해 UTC/GMT를 사용합니다. 로컬 서버 시간대에 타임 스탬프를 갖고 싶습니다. WP 설정에서 시간대를 변경해도 도움이되지 않습니다. 이것은 시간 표시에 영향을 주지만 오류 로그의 시간 소인에는 영향을주지 않습니다.WordPress - 어떻게 오류 로그 타임 스탬프 표준 시간대를 로컬로 설정합니까?

(내가 이것을 설정하는 wp_settings.php 파일에 라인이 알고, 내가 UTC를 사용하는 하드 코딩 WP 코드의 일부를. 망쳐 놨을 설정하는 것을 변화 이해하기 위해 주어진하고)

나는 보았다 PHP error_log 함수를 오버라이드하여 시간을 파싱하고 바꾼다. 그러나 내가 발견 한 두 가지 메소드는 뭔가 추가로 설치해야한다. (APD 또는 Runkit). 내가 알기에 이것들은 DEV 환경만을위한 것이므로, 나는 그것들을 엉망으로 만들고 싶지 않다.

WP에서 현지 시간대 스탬프를 오류 로그에 기록하는 방법에 대한 제안이 있으십니까?

답변

1

로깅 시간이 UTC로되어있는 이유가 있습니다. 많은 시간대는 daylight saving time을 사용합니다. 해당 지역의 경우 건너 뛰는 봄에는 1 시간, 중복되는 가을에는 1 시간이 있습니다. 현지 시간을 사용하여 기록하려면 복제 된 값 사이를 명확하게 구분할 수있는 쉬운 방법이 없습니다.

예를 들어 미국 동부 표준 시간대 ("America/New_York")에 로컬 시간을 사용하여 기록한 경우 2014-11-02 01:30:00과 같은 값은 동부 일광 절약 시간제, 또는 동부 표준시로 1:30 - 1 시간 후.

자주 로그하는 경우 근처의 로그 항목에있는 다른 항목의 타임 스탬프를 비교하여이를 감지 할 수 있습니다. 그러나 일반적으로 가끔씩 만 기록 할 수도 있고 한 번에 두 개 이상의 로그 항목을 분석하는 오버 헤드를 원하지 않기 때문에 좋은 해결책은 아닙니다.

일광 절약 시간 외에도 여러 서버에서 로그 파일을 가져 오는 경우 균일하게 비교할 수 있어야한다는 문제가 있습니다. 아마 미국 동부 해안과 서부 해안에 웹 서버가 있습니다. 하나는 유럽에, 다른 하나는 일본에 있습니다. 내 글로벌 트래픽이 급증한 경우 - 일을 처리하기 위해 시간대 변환을해서는 안됩니다.

현지 시간으로 로그인해야하는 경우 - 타임 스탬프와 함께 UTC 오프셋을 고려하십시오. 이것은 일부 언어에서 "DateTimeOffset"으로 알려져 있으며 ISO-8601 표준의 일부이기도합니다. 예 : "2014-06-20T01:23:45-07:00". 이렇게하면 적어도 UTC 로의 변환을 허용하고 일광 절약 시간으로 인한 모호성을 제거 할 수 있습니다.

WordPress 또는 PHP 로그를 이런 방식으로 사용하는 방법이 있는지 모르겠지만 다른 사람이 별도의 답변으로 제공 할 수 있습니다.

+0

이것은 불행히도 WordPress에만 적용됩니다. WP는 모든 타임 스탬프를 UTC로 강제합니다. 로컬에 있어야합니다. 이 응용 프로그램에는 하나의 서버 만 있으므로 조정할 여러 시간대에 대해 걱정할 필요가 없습니다. WordPress는 타임 스탬프가 73 개의 별도 장소 (최소한 현재 버전)에서 발생하고 있으며, 이는 작은 해킹보다 훨씬 많은 것입니다. 다행히도 WP 전문가가 이에 대한 아이디어를 갖고 있기를 바랍니다. :) –