provide a logging mechanism
This commit is contained in:
parent
d11a8f4103
commit
820cd0fb75
|
@ -222,6 +222,8 @@ class OC_App{
|
||||||
$settings[] = array( "id" => "core_users", "order" => 2, "href" => OC_Helper::linkTo( "settings", "users.php" ), "name" => $l->t("Users"), "icon" => OC_Helper::imagePath( "settings", "users.svg" ));
|
$settings[] = array( "id" => "core_users", "order" => 2, "href" => OC_Helper::linkTo( "settings", "users.php" ), "name" => $l->t("Users"), "icon" => OC_Helper::imagePath( "settings", "users.svg" ));
|
||||||
// admin apps menu
|
// admin apps menu
|
||||||
$settings[] = array( "id" => "core_apps", "order" => 3, "href" => OC_Helper::linkTo( "settings", "apps.php?installed" ), "name" => $l->t("Apps"), "icon" => OC_Helper::imagePath( "settings", "apps.svg" ));
|
$settings[] = array( "id" => "core_apps", "order" => 3, "href" => OC_Helper::linkTo( "settings", "apps.php?installed" ), "name" => $l->t("Apps"), "icon" => OC_Helper::imagePath( "settings", "apps.svg" ));
|
||||||
|
// admin log menu
|
||||||
|
$settings[] = array( "id" => "core_log", "order" => 4, "href" => OC_Helper::linkTo( "settings", "log.php" ), "name" => $l->t("Log"), "icon" => OC_Helper::imagePath( "log", "apps.svg" ));
|
||||||
|
|
||||||
// if there're some admin forms
|
// if there're some admin forms
|
||||||
if(!empty(self::$adminForms))
|
if(!empty(self::$adminForms))
|
||||||
|
|
|
@ -0,0 +1,71 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* ownCloud
|
||||||
|
*
|
||||||
|
* @author Robin Appelman
|
||||||
|
* @copyright 2011 Robin Appelman icewind1991@gmail.com
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
|
||||||
|
* License as published by the Free Software Foundation; either
|
||||||
|
* version 3 of the License, or any later version.
|
||||||
|
*
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Affero General Public
|
||||||
|
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
*logging utilities
|
||||||
|
*
|
||||||
|
* Log is saved at data/owncloud.log (on default)
|
||||||
|
*/
|
||||||
|
|
||||||
|
class OC_Log{
|
||||||
|
const DEBUG=0;
|
||||||
|
const INFO=1;
|
||||||
|
const WARN=2;
|
||||||
|
const ERROR=3;
|
||||||
|
const FATAL=4;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* write a message in the log
|
||||||
|
* @param string $app
|
||||||
|
* @param string $message
|
||||||
|
* @param int level
|
||||||
|
*/
|
||||||
|
public static function write($app,$message,$level){
|
||||||
|
$minLevel=OC_Config::getValue( "loglevel", 2 );
|
||||||
|
if($level>$minLevel){
|
||||||
|
$datadir=OC_Config::getValue( "datadirectory", OC::$SERVERROOT.'/data' );
|
||||||
|
$logFile=OC_Config::getValue( "logfile", $datadir.'/owncloud.log' );
|
||||||
|
$entry=array('app'=>$app,'message'=>$message,'level'=>$level,'time'=>time());
|
||||||
|
$fh=fopen($logFile,'a');
|
||||||
|
fwrite($fh,json_encode($entry)."\n");
|
||||||
|
fclose($fh);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function getEntries(){
|
||||||
|
$datadir=OC_Config::getValue( "datadirectory", OC::$SERVERROOT.'/data' );
|
||||||
|
$logFile=OC_Config::getValue( "logfile", $datadir.'/owncloud.log' );
|
||||||
|
$entries=array();
|
||||||
|
if(!file_exists($logFile)){
|
||||||
|
return array();
|
||||||
|
}
|
||||||
|
$fh=fopen($logFile,'r');
|
||||||
|
while(!feof($fh)){
|
||||||
|
$line=fgets($fh);
|
||||||
|
if($line){
|
||||||
|
$entries[]=json_decode($line);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fclose($fh);
|
||||||
|
return $entries;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,41 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* ownCloud
|
||||||
|
*
|
||||||
|
* @author Robin Appelman
|
||||||
|
* @copyright 2011 Robin Appelman icewind1991@gmail.com
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
|
||||||
|
* License as published by the Free Software Foundation; either
|
||||||
|
* version 3 of the License, or any later version.
|
||||||
|
*
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Affero General Public
|
||||||
|
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
require_once('../lib/base.php');
|
||||||
|
OC_Util::checkAdminUser();
|
||||||
|
|
||||||
|
// Load the files we need
|
||||||
|
OC_Util::addStyle( "settings", "settings" );
|
||||||
|
OC_Util::addScript( "settings", "apps" );
|
||||||
|
OC_App::setActiveNavigationEntry( "core_log" );
|
||||||
|
|
||||||
|
$entries=OC_Log::getEntries();
|
||||||
|
|
||||||
|
function compareEntries($a,$b){
|
||||||
|
return $b->time-$a>time;
|
||||||
|
}
|
||||||
|
usort($entries, 'compareEntries');
|
||||||
|
|
||||||
|
$tmpl = new OC_Template( "settings", "log", "user" );
|
||||||
|
$tmpl->assign('entries',$entries);
|
||||||
|
|
||||||
|
$tmpl->printPage();
|
|
@ -0,0 +1,29 @@
|
||||||
|
<?php /**
|
||||||
|
* Copyright (c) 2011, Robin Appelman <icewind1991@gmail.com>
|
||||||
|
* This file is licensed under the Affero General Public License version 3 or later.
|
||||||
|
* See the COPYING-README file.
|
||||||
|
*/
|
||||||
|
$levels=array('DEBUG','INFO','WARN','ERROR','FATAL');
|
||||||
|
?>
|
||||||
|
|
||||||
|
<div id="controls">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<table>
|
||||||
|
<?php foreach($_['entries'] as $entry):?>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<?php echo $levels[$entry->level];?>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<?php echo $entry->app;?>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<?php echo $entry->message;?>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<?php echo $l->l('datetime',$entry->time);?>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<?php endforeach;?>
|
||||||
|
</table>
|
Loading…
Reference in New Issue