Support » Plugin: Error Log Monitor » Time of error incorrect

  • The errors have started reporting many hours off. I realize this may not be a direct problem with this plugin but wondering if it might be.

Viewing 7 replies - 1 through 7 (of 7 total)
  • Plugin Author Janis Elsts

    (@whiteshadow)

    It probably has something to do with timezones. The plugin reads error timestamps from the log file, converts them to UTC, then converts them to the timezone set in “Settings -> General” and displays the result in the dashboard widget.

    Check the timezone settings in WordPress. If that doesn’t help, check the the timezone settings in the PHP configuration. Usually that shouldn’t matter, but if those settings have *changed* recently, old errors might be displayed with incorrect timestamps.

    I’ll add my voice to this thread. I just installed Error Log Monitoring for the first time and the times in the log are remaining UTC, even though the timezone is set for “Denver” (Mountain Time, US).

    Plugin Author Janis Elsts

    (@whiteshadow)

    Oops, it seems that I was looking at the development version and not the last release. Try this version instead:
    https://downloads.wordpress.org/plugin/error-log-monitor.zip

    Looks like the problem still persists with the development version?

    Plugin Author Janis Elsts

    (@whiteshadow)

    That’s odd, it looks correct in my tests. How big of a difference are you seeing between the correct timestamp and what the plugin shows? Do the displayed timestamps change if you change the timezone in WordPress settings?

    Displays correct date in my timezone with the following tweaks:

    I edited around line 234 of DashboardWidget.php as follows…

    		echo '<ul class="', esc_attr(implode(' ', $listClasses)), '"><tbody>';
    		$f = 'F j, Y @ g:ia';
    		foreach ($lines as $line) {
    			printf(
    				'<li class="elm-entry%s" data-raw-message="%s">%s <p class="elm-timestamp" title="%s">%s</p>',
    				!empty($line['stacktrace']) ? ' elm-has-stack-trace' : '',
    				esc_attr($line['message']),
    				$actions,
    				// !empty($line['timestamp']) ? gmdate('Y-m-d H:i:s e', $line['timestamp']) : '',
    				!empty($line['timestamp']) ? date($f, $line['timestamp']) : '',
    
    				// !empty($line['timestamp']) ? $this->plugin->formatTimestamp($line['timestamp']) : ''
    				!empty($line['timestamp']) ? date($f, $line['timestamp']) : ''
    			);
    
    			echo '<p class="elm-log-message">',
    				esc_html($this->plugin->formatLogMessage($line['message'])),
    			'</p>';
    
    			if ( !empty($line['stacktrace']) ) {
    				$this->displayStackTrace($line['stacktrace']);
    			}
    
    			echo '</li>';
    		}
    		echo '</ul>';
    

    …and in my functions.php added…

    	add_filter('date_i18n', 'wpse57195_filter_date', 10, 4);
    
    	function wpse57195_filter_date($date, $format, $timestamp, $gmt)
    		{
    		if(!is_admin()) { return $date; }
    
    		date_default_timezone_set('America/New_York');
    
    		// if(!get_query_var('sitemap')) return $date;
    		// if this isn't a sitemap page, bail
    
    		// W3C Time format with -05:00 for central time
    		// NOTE: this doesn't account for daylight saving time
    
    		$f = 'F j, Y @ g:ia';
    		return $gmt ? gmdate($f, $timestamp) : date($f, $timestamp);
    		}
    
    Plugin Author Janis Elsts

    (@whiteshadow)

    I’m not sure I fully understand how it works. It seems to override WordPress timezone settings entirely. That’s an interesting approach, though it might be site-specific.

Viewing 7 replies - 1 through 7 (of 7 total)
  • You must be logged in to reply to this topic.