aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xmod/admin.php41
1 files changed, 27 insertions, 14 deletions
diff --git a/mod/admin.php b/mod/admin.php
index c79af8d5b..028ed8624 100755
--- a/mod/admin.php
+++ b/mod/admin.php
@@ -635,23 +635,36 @@ function admin_page_logs(&$a){
$t = get_markup_template("admin_logs.tpl");
$f = get_config('system','logfile');
- $size = filesize($f);
- if($size > 5000000 || $size < 0)
- $size = 5000000;
$data = '';
- $fp = fopen($f,'r');
- if($fp) {
- $seek = fseek($fp,0-$size,SEEK_END);
- if($seek === 0) {
- fgets($fp); // throw away the first partial line
- $data = escape_tags(fread($fp,$size));
- while(! feof($fp))
- $data .= escape_tags(fread($fp,4096));
- }
- fclose($fp);
- }
+ if(!file_exists($f)) {
+ $data = t("Error trying to open <strong>$f</strong> log file.\r\n<br/>Check to see if file $f exist and is
+readable.");
+ }
+ else {
+ $fp = fopen($f, 'r');
+ if(!$fp) {
+ $data = t("Couldn't open <strong>$f</strong> log file.\r\n<br/>Check to see if file $f is readable.");
+ }
+ else {
+ $fstat = fstat($fp);
+ $size = $fstat['size'];
+ if($size != 0)
+ {
+ if($size > 5000000 || $size < 0)
+ $size = 5000000;
+ $seek = fseek($fp,0-$size,SEEK_END);
+ if($seek === 0) {
+ fgets($fp); // throw away the first partial line
+ $data = escape_tags(fread($fp,$size));
+ while(! feof($fp))
+ $data .= escape_tags(fread($fp,4096));
+ }
+ }
+ fclose($fp);
+ }
+ }
return replace_macros($t, array(
'$title' => t('Administration'),