diff --git a/src/Kmd/Logviewer/Logviewer.php b/src/Kmd/Logviewer/Logviewer.php index 738947a..cfc0f37 100644 --- a/src/Kmd/Logviewer/Logviewer.php +++ b/src/Kmd/Logviewer/Logviewer.php @@ -61,7 +61,13 @@ public function log() $log_file = glob($this->path.'/log-'.$this->sapi.'*-'.$this->date.'.txt'); - if (!empty($log_file)) { + // Looking for custom file, if daily $log_file not found + if (empty($log_file)) { + // $this->date contains custom file name + $log_file = array($this->path . '/' . $this->date); + } + + if (!empty($log_file) && file_exists($log_file[0])) { $this->empty = false; $file = File::get($log_file[0]); diff --git a/src/config/config.php b/src/config/config.php index 5035ef3..6436baf 100644 --- a/src/config/config.php +++ b/src/config/config.php @@ -2,16 +2,19 @@ return array( - 'base_url' => 'logviewer', - 'filters' => array( - 'global' => array(), - 'view' => array(), - 'delete' => array() + 'base_url' => 'logviewer', + 'filters' => array( + 'global' => array(), + 'view' => array(), + 'delete' => array() ), - 'log_dirs' => array('app' => storage_path().'/logs'), - 'log_order' => 'asc', // Change to 'desc' for the latest entries first - 'per_page' => 10, - 'view' => 'logviewer::viewer', - 'p_view' => 'pagination::slider' + 'log_dirs' => array('app' => storage_path().'/logs'), + 'log_order' => 'desc', // Change to 'desc' for the latest entries first + 'per_page' => 10, + 'view' => 'logviewer::viewer', + 'p_view' => 'pagination::slider', + // Allow to use custom file list or custom file name filtering + 'custom_files' => array(), // custom log files e.g. 'laravel.log' + 'custom_glob_filter' => array(), // custom filter for glob e.g. '*.log' ); diff --git a/src/filters.php b/src/filters.php index 232a12e..80f20ec 100644 --- a/src/filters.php +++ b/src/filters.php @@ -5,9 +5,12 @@ if (!Lang::has('logviewer::logviewer.sapi')) { App::setLocale('en'); } + + $dirs = Config::get('logviewer::log_dirs'); + + // List daily files foreach (Lang::get('logviewer::logviewer.sapi') as $sapi => $human) { $logs[$sapi]['sapi'] = $human; - $dirs = Config::get('logviewer::log_dirs'); $files = array(); @@ -21,6 +24,28 @@ } else { $files[$app] = array(); } + + // List files from custom list + if (strpos(php_sapi_name(), $sapi) !== false) { + foreach (Config::get('logviewer::custom_files') as $f) { + if (file_exists($dir . '/' . $f) && !in_array(basename($f), $files[$app])) { + $files[$app][] = $f; + } + } + + // List files from custom file filter + foreach (Config::get('logviewer::custom_glob_filter') as $filter) { + $custom_files = glob($dir . '/' . $filter, GLOB_BRACE); + + if (is_array($custom_files)) { + foreach ($custom_files as $f) { + if (file_exists($f) && !in_array(basename($f), $files[$app])) { + $files[$app][] = basename($f); + } + } + } + } + } } $logs[$sapi]['logs'] = $files;