protected function write(array $record) { $row = new LogTable(); $row->channel = $record['channel']; $row->level = $record['level']; $row->message = esc_sql($record['message']); $row->context = json_encode($record['context']); $row->time = $record['datetime']->format('U'); $row->save(); }
public function dashoard_template() { ?> <style type="text/css"> #podlove-log { height: 500px; overflow: auto; font-family: monospace; font-size: 14px; line-height: 18px; padding: 5px; } .log-level-200 { } .log-level-400 { color: #95002B; } .log-level-550 { background: #95002B; color: #FAD4AF; } .log-level-550 a { color: #F4E6AD; } </style> <script type="text/javascript"> jQuery(function($) { $(document).ready(function() { // scroll down $("#podlove-log").scrollTop($("#podlove-log")[0].scrollHeight); }); }); </script> <?php if ($timezone = get_option('timezone_string')) { date_default_timezone_set($timezone); } ?> <div id="podlove-log"> <?php foreach (LogTable::find_all_by_where("time > " . strtotime("-1 week")) as $log_entry) { ?> <div class="log-entry log-level-<?php echo $log_entry->level; ?> "> <span class="log-date"> [<?php echo date('Y-m-d H:i:s', $log_entry->time); ?> ] </span> <span class="log-message"> <?php echo $log_entry->message; ?> </span> <span class="log-extra"> <?php $data = json_decode($log_entry->context); if (isset($data->media_file_id)) { if ($media_file = Model\MediaFile::find_by_id($data->media_file_id)) { if ($episode = $media_file->episode()) { if ($asset = $media_file->episode_asset()) { echo sprintf('<a href="%s">%s/%s</a>', get_edit_post_link($episode->post_id), $episode->slug, $asset->title); } } } } if (isset($data->error)) { echo sprintf(' "%s"', $data->error); } if (isset($data->episode_id)) { if ($episode = Model\Episode::find_by_id($data->episode_id)) { echo sprintf(' <a href="%s">%s</a>', get_edit_post_link($episode->post_id), get_the_title($episode->post_id)); } } if (isset($data->http_code)) { echo " HTTP Status: " . $data->http_code; } if (isset($data->mime_type) && isset($data->expected_mime_type)) { echo " Expected: {$data->expected_mime_type}, but found: {$data->mime_type}"; } if (isset($data->type) && $data->type == 'twig') { echo sprintf('in template "%s" line %d', $data->template, $data->line); } ?> </span> </div> <?php } ?> </div> <?php }
/** * Only keep logs for 4 weeks. */ public static function cleanup() { global $wpdb; $wpdb->query('DELETE FROM ' . LogTable::table_name() . ' WHERE time < ' . strtotime("-4 weeks")); }