Show logs through the web interface

master
Gilles Crettenand 11 years ago
parent 164c1c78b3
commit dccbbb98e5

@ -87,4 +87,38 @@ class Logger {
public static function data() {
return self::$data;
}
}
public static function getLastLogs($offset = null) {
$file = Configuration::get('log.file');
if(! file_exists($file)) {
return 'No log yet !';
}
$f = fopen($file, 'r');
$len = 1024;
fseek($f, 0, SEEK_END);
$size = ftell($f);
if(is_null($offset) || $offset > $size) {
$offset = $size - $len;
}
$offset = max(0, $offset);
fseek($f, $offset);
// remove the first line that may be incomplete
$buffer = fread($f, $len);
$buffer = explode("\n", $buffer);
array_shift($buffer);
$buffer = implode("\n", $buffer);
// continue reading until the end of the file
while(! feof($f)) {
$buffer .= fread($f, $len);
}
fclose($f);
return $buffer;
}
}

@ -0,0 +1,17 @@
<?php
ini_set('display_startup_errors', 'On');
ini_set('display_errors', 'On');
// register an autoloader to automatically load classes
// the namespace for the class must begin with BSR and
// otherwise respect the PSR-4 standard
spl_autoload_register(function ($class) {
$class = substr($class, strlen('BSR'));
$path = sprintf('%s/../%s.php', __DIR__, str_replace('\\', '/', $class));
if (file_exists($path)) {
/** @noinspection PhpIncludeInspection */
require $path;
}
});

@ -485,7 +485,8 @@ class NetBiblio extends WebService
public function FindBook($code)
{
$this->CheckSession();
return reset($this->AddBookData(BookSearch::GetBooks(array($code))));
$books = $this->AddBookData(BookSearch::GetBooks(array($code)));
return reset($books);
}
/**

@ -2,20 +2,7 @@
namespace BSR;
ini_set('display_errors', 'On');
// register an autoloader to automatically load classes
// the namespace for the class must begin with BSR and
// otherwise respect the PSR-4 standard
spl_autoload_register(function ($class) {
$class = substr($class, strlen('BSR'));
$path = sprintf('%s/%s.php', __DIR__, str_replace('\\', '/', $class));
if (file_exists($path)) {
/** @noinspection PhpIncludeInspection */
require $path;
}
});
require_once('Lib/autoloader.php');
$web = new NetBiblio();
$web->Run();

@ -0,0 +1,15 @@
<?php
namespace BSR;
use BSR\Lib\Formatter\Html;
use BSR\Lib\Logger;
require_once('Lib/autoloader.php');
$logs = Logger::getLastLogs();
echo Html::template(array(
'title' => 'Logs',
'content' => "<pre>$logs</pre>",
));

@ -23,7 +23,8 @@
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav">
<li><a href="/">Help</a></li>
<li><a href="/phpinfo.php">PHPInfo</a></li>
<li><a href="logs.php">Logs</a></li>
<li><a href="phpinfo.php">PHPInfo</a></li>
</ul>
</div>
</div>

Loading…
Cancel
Save