merged from upstream
commit
bd9fa658de
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,68 @@
|
||||
<?php
|
||||
class OC_Migration_Provider_Contacts extends OC_Migration_Provider{
|
||||
|
||||
// Create the xml for the user supplied
|
||||
function export( ){
|
||||
$options = array(
|
||||
'table'=>'contacts_addressbooks',
|
||||
'matchcol'=>'userid',
|
||||
'matchval'=>$this->uid,
|
||||
'idcol'=>'id'
|
||||
);
|
||||
$ids = $this->content->copyRows( $options );
|
||||
|
||||
$options = array(
|
||||
'table'=>'contacts_cards',
|
||||
'matchcol'=>'addressbookid',
|
||||
'matchval'=>$ids
|
||||
);
|
||||
|
||||
// Export tags
|
||||
$ids2 = $this->content->copyRows( $options );
|
||||
|
||||
// If both returned some ids then they worked
|
||||
if( is_array( $ids ) && is_array( $ids2 ) )
|
||||
{
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Import function for bookmarks
|
||||
function import( ){
|
||||
switch( $this->appinfo->version ){
|
||||
default:
|
||||
// All versions of the app have had the same db structure, so all can use the same import function
|
||||
$query = $this->content->prepare( "SELECT * FROM contacts_addressbooks WHERE userid LIKE ?" );
|
||||
$results = $query->execute( array( $this->olduid ) );
|
||||
$idmap = array();
|
||||
while( $row = $results->fetchRow() ){
|
||||
// Import each bookmark, saving its id into the map
|
||||
$query = OC_DB::prepare( "INSERT INTO *PREFIX*contacts_addressbooks (`userid`, `displayname`, `uri`, `description`, `ctag`) VALUES (?, ?, ?, ?, ?)" );
|
||||
$query->execute( array( $this->uid, $row['displayname'], $row['uri'], $row['description'], $row['ctag'] ) );
|
||||
// Map the id
|
||||
$idmap[$row['id']] = OC_DB::insertid();
|
||||
}
|
||||
// Now tags
|
||||
foreach($idmap as $oldid => $newid){
|
||||
$query = $this->content->prepare( "SELECT * FROM contacts_cards WHERE addressbookid LIKE ?" );
|
||||
$results = $query->execute( array( $oldid ) );
|
||||
while( $row = $results->fetchRow() ){
|
||||
// Import the tags for this bookmark, using the new bookmark id
|
||||
$query = OC_DB::prepare( "INSERT INTO *PREFIX*contacts_cards (`addressbookid`, `fullname`, `carddata`, `uri`, `lastmodified`) VALUES (?, ?, ?, ?, ?)" );
|
||||
$query->execute( array( $newid, $row['fullname'], $row['carddata'], $row['uri'], $row['lastmodified'] ) );
|
||||
}
|
||||
}
|
||||
// All done!
|
||||
break;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Load the provider
|
||||
new OC_Migration_Provider_Contacts( 'contacts' );
|
||||
@ -0,0 +1,277 @@
|
||||
<?php
|
||||
/**
|
||||
* Copyright (c) 2012 Robin Appelman <icewind@owncloud.com>
|
||||
* This file is licensed under the Affero General Public License version 3 or
|
||||
* later.
|
||||
* See the COPYING-README file.
|
||||
*/
|
||||
|
||||
class OC_Archive_TAR extends OC_Archive{
|
||||
const PLAIN=0;
|
||||
const GZIP=1;
|
||||
const BZIP=2;
|
||||
|
||||
/**
|
||||
* @var Archive_Tar tar
|
||||
*/
|
||||
private $tar=null;
|
||||
private $path;
|
||||
|
||||
function __construct($source){
|
||||
$types=array(null,'gz','bz');
|
||||
$this->path=$source;
|
||||
$this->tar=new Archive_Tar($source,$types[self::getTarType($source)]);
|
||||
}
|
||||
|
||||
/**
|
||||
* try to detect the type of tar compression
|
||||
* @param string file
|
||||
* @return str
|
||||
*/
|
||||
static public function getTarType($file){
|
||||
if(strpos($file,'.')){
|
||||
$extention=substr($file,strrpos($file,'.'));
|
||||
switch($extention){
|
||||
case 'gz':
|
||||
case 'tgz':
|
||||
return self::GZIP;
|
||||
case 'bz':
|
||||
case 'bz2':
|
||||
return self::BZIP;
|
||||
default:
|
||||
return self::PLAIN;
|
||||
}
|
||||
}else{
|
||||
return self::PLAIN;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* add an empty folder to the archive
|
||||
* @param string path
|
||||
* @return bool
|
||||
*/
|
||||
function addFolder($path){
|
||||
$tmpBase=get_temp_dir().'/';
|
||||
if(substr($path,-1,1)!='/'){
|
||||
$path.='/';
|
||||
}
|
||||
if($this->fileExists($path)){
|
||||
return false;
|
||||
}
|
||||
mkdir($tmpBase.$path);
|
||||
$result=$this->tar->addModify(array($tmpBase.$path),'',$tmpBase);
|
||||
rmdir($tmpBase.$path);
|
||||
return $result;
|
||||
}
|
||||
/**
|
||||
* add a file to the archive
|
||||
* @param string path
|
||||
* @param string source either a local file or string data
|
||||
* @return bool
|
||||
*/
|
||||
function addFile($path,$source=''){
|
||||
if($this->fileExists($path)){
|
||||
$this->remove($path);
|
||||
}
|
||||
if(file_exists($source)){
|
||||
$header=array();
|
||||
$dummy='';
|
||||
$this->tar->_openAppend();
|
||||
$result=$this->tar->_addfile($source,$header,$dummy,$dummy,$path);
|
||||
}else{
|
||||
$result=$this->tar->addString($path,$source);
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* rename a file or folder in the archive
|
||||
* @param string source
|
||||
* @param string dest
|
||||
* @return bool
|
||||
*/
|
||||
function rename($source,$dest){
|
||||
//no proper way to delete, rename entire archive, rename file and remake archive
|
||||
$tmp=OC_Helper::tmpFolder();
|
||||
$this->tar->extract($tmp);
|
||||
rename($tmp.$source,$tmp.$dest);
|
||||
$this->tar=null;
|
||||
unlink($this->path);
|
||||
$types=array(null,'gz','bz');
|
||||
$this->tar=new Archive_Tar($this->path,$types[self::getTarType($this->path)]);
|
||||
$this->tar->createModify(array($tmp),'',$tmp.'/');
|
||||
}
|
||||
|
||||
private function getHeader($file){
|
||||
$headers=$this->tar->listContent();
|
||||
foreach($headers as $header){
|
||||
if($file==$header['filename'] or $file.'/'==$header['filename']){
|
||||
return $header;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* get the uncompressed size of a file in the archive
|
||||
* @param string path
|
||||
* @return int
|
||||
*/
|
||||
function filesize($path){
|
||||
$stat=$this->getHeader($path);
|
||||
return $stat['size'];
|
||||
}
|
||||
/**
|
||||
* get the last modified time of a file in the archive
|
||||
* @param string path
|
||||
* @return int
|
||||
*/
|
||||
function mtime($path){
|
||||
$stat=$this->getHeader($path);
|
||||
return $stat['mtime'];
|
||||
}
|
||||
|
||||
/**
|
||||
* get the files in a folder
|
||||
* @param path
|
||||
* @return array
|
||||
*/
|
||||
function getFolder($path){
|
||||
$files=$this->getFiles();
|
||||
$folderContent=array();
|
||||
$pathLength=strlen($path);
|
||||
foreach($files as $file){
|
||||
if(substr($file,0,$pathLength)==$path and $file!=$path){
|
||||
if(strrpos(substr($file,0,-1),'/')<=$pathLength){
|
||||
$folderContent[]=substr($file,$pathLength);
|
||||
}
|
||||
}
|
||||
}
|
||||
return $folderContent;
|
||||
}
|
||||
/**
|
||||
*get all files in the archive
|
||||
* @return array
|
||||
*/
|
||||
function getFiles(){
|
||||
$headers=$this->tar->listContent();
|
||||
$files=array();
|
||||
foreach($headers as $header){
|
||||
$files[]=$header['filename'];
|
||||
}
|
||||
return $files;
|
||||
}
|
||||
/**
|
||||
* get the content of a file
|
||||
* @param string path
|
||||
* @return string
|
||||
*/
|
||||
function getFile($path){
|
||||
return $this->tar->extractInString($path);
|
||||
}
|
||||
/**
|
||||
* extract a single file from the archive
|
||||
* @param string path
|
||||
* @param string dest
|
||||
* @return bool
|
||||
*/
|
||||
function extractFile($path,$dest){
|
||||
$tmp=OC_Helper::tmpFolder();
|
||||
if(!$this->fileExists($path)){
|
||||
return false;
|
||||
}
|
||||
$success=$this->tar->extractList(array($path),$tmp);
|
||||
if($success){
|
||||
rename($tmp.$path,$dest);
|
||||
}
|
||||
OC_Helper::rmdirr($tmp);
|
||||
return $success;
|
||||
}
|
||||
/**
|
||||
* extract the archive
|
||||
* @param string path
|
||||
* @param string dest
|
||||
* @return bool
|
||||
*/
|
||||
function extract($dest){
|
||||
return $this->tar->extract($dest);
|
||||
}
|
||||
/**
|
||||
* check if a file or folder exists in the archive
|
||||
* @param string path
|
||||
* @return bool
|
||||
*/
|
||||
function fileExists($path){
|
||||
return $this->getHeader($path)!==null;
|
||||
}
|
||||
|
||||
/**
|
||||
* remove a file or folder from the archive
|
||||
* @param string path
|
||||
* @return bool
|
||||
*/
|
||||
function remove($path){
|
||||
if(!$this->fileExists($path)){
|
||||
return false;
|
||||
}
|
||||
//no proper way to delete, extract entire archive, delete file and remake archive
|
||||
$tmp=OC_Helper::tmpFolder();
|
||||
$this->tar->extract($tmp);
|
||||
OC_Helper::rmdirr($tmp.$path);
|
||||
$this->tar=null;
|
||||
unlink($this->path);
|
||||
$this->reopen();
|
||||
$this->tar->createModify(array($tmp),'',$tmp);
|
||||
return true;
|
||||
}
|
||||
/**
|
||||
* get a file handler
|
||||
* @param string path
|
||||
* @param string mode
|
||||
* @return resource
|
||||
*/
|
||||
function getStream($path,$mode){
|
||||
if(strrpos($path,'.')!==false){
|
||||
$ext=substr($path,strrpos($path,'.'));
|
||||
}else{
|
||||
$ext='';
|
||||
}
|
||||
$tmpFile=OC_Helper::tmpFile($ext);
|
||||
if($this->fileExists($path)){
|
||||
$this->extractFile($path,$tmpFile);
|
||||
}elseif($mode=='r' or $mode=='rb'){
|
||||
return false;
|
||||
}
|
||||
if($mode=='r' or $mode=='rb'){
|
||||
return fopen($tmpFile,$mode);
|
||||
}else{
|
||||
OC_CloseStreamWrapper::$callBacks[$tmpFile]=array($this,'writeBack');
|
||||
self::$tempFiles[$tmpFile]=$path;
|
||||
return fopen('close://'.$tmpFile,$mode);
|
||||
}
|
||||
}
|
||||
|
||||
private static $tempFiles=array();
|
||||
/**
|
||||
* write back temporary files
|
||||
*/
|
||||
function writeBack($tmpFile){
|
||||
if(isset(self::$tempFiles[$tmpFile])){
|
||||
$this->addFile(self::$tempFiles[$tmpFile],$tmpFile);
|
||||
unlink($tmpFile);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* reopen the archive to ensure everything is written
|
||||
*/
|
||||
private function reopen(){
|
||||
if($this->tar){
|
||||
$this->tar->_close();
|
||||
$this->tar=null;
|
||||
}
|
||||
$types=array(null,'gz','bz');
|
||||
$this->tar=new Archive_Tar($this->path,$types[self::getTarType($this->path)]);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,20 @@
|
||||
<?php
|
||||
/**
|
||||
* Copyright (c) 2012 Robin Appelman <icewind@owncloud.com>
|
||||
* This file is licensed under the Affero General Public License version 3 or
|
||||
* later.
|
||||
* See the COPYING-README file.
|
||||
*/
|
||||
|
||||
require_once('archive.php');
|
||||
|
||||
class Test_Archive_TAR extends Test_Archive{
|
||||
protected function getExisting(){
|
||||
$dir=OC::$SERVERROOT.'/apps/files_archive/tests/data';
|
||||
return new OC_Archive_TAR($dir.'/data.tar.gz');
|
||||
}
|
||||
|
||||
protected function getNew(){
|
||||
return new OC_Archive_TAR(OC_Helper::tmpFile('.tar.gz'));
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,11 @@
|
||||
<?php
|
||||
/**
|
||||
* Copyright (c) 2012 Robin Appelman <icewind@owncloud.com>
|
||||
* This file is licensed under the Affero General Public License version 3 or
|
||||
* later.
|
||||
* See the COPYING-README file.
|
||||
*/
|
||||
|
||||
OC::$CLASSPATH['OC_Filestorage_FTP']='apps/files_external/lib/ftp.php';
|
||||
OC::$CLASSPATH['OC_Filestorage_DAV']='apps/files_external/lib/webdav.php';
|
||||
OC::$CLASSPATH['OC_Filestorage_Google']='apps/files_external/lib/google.php';
|
||||
@ -0,0 +1,13 @@
|
||||
<?xml version="1.0"?>
|
||||
<info>
|
||||
<id>files_external</id>
|
||||
<name>External storage support</name>
|
||||
<description>Mount external storage sources</description>
|
||||
<version>0.1</version>
|
||||
<licence>AGPL</licence>
|
||||
<author>Robin Appelman</author>
|
||||
<require>3</require>
|
||||
<types>
|
||||
<filesystem/>
|
||||
</types>
|
||||
</info>
|
||||
@ -1,11 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* Copyright (c) 2012 Robin Appelman <icewind@owncloud.com>
|
||||
* This file is licensed under the Affero General Public License version 3 or
|
||||
* later.
|
||||
* See the COPYING-README file.
|
||||
*/
|
||||
|
||||
OC::$CLASSPATH['OC_Filestorage_FTP']='apps/files_remote/lib/ftp.php';
|
||||
OC::$CLASSPATH['OC_Filestorage_DAV']='apps/files_remote/lib/webdav.php';
|
||||
OC::$CLASSPATH['OC_Filestorage_Google']='apps/files_remote/lib/google.php';
|
||||
@ -1,10 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
<info>
|
||||
<id>files_remote</id>
|
||||
<name>Remote storage support</name>
|
||||
<description>Mount remote storage sources</description>
|
||||
<version>0.1</version>
|
||||
<licence>AGPL</licence>
|
||||
<author>Robin Appelman</author>
|
||||
<require>3</require>
|
||||
</info>
|
||||
@ -1,11 +1,11 @@
|
||||
<?xml version="1.0"?>
|
||||
<info>
|
||||
<id>gallery</id>
|
||||
<name>Gallery</name>
|
||||
<name>Pictures</name>
|
||||
<version>0.4</version>
|
||||
<licence>AGPL</licence>
|
||||
<author>Bartek Przybylski</author>
|
||||
<require>2</require>
|
||||
<description>Gallery application for ownCloud</description>
|
||||
<description>Dedicated pictures application</description>
|
||||
<default_enable/>
|
||||
</info>
|
||||
|
||||
@ -0,0 +1,23 @@
|
||||
<?php
|
||||
|
||||
// only need filesystem apps
|
||||
$RUNTIME_APPTYPES=array('filesystem');
|
||||
|
||||
// Init owncloud
|
||||
require_once('../../lib/base.php');
|
||||
|
||||
OC_JSON::checkLoggedIn();
|
||||
|
||||
// Load the files
|
||||
$dir = isset( $_GET['dir'] ) ? $_GET['dir'] : '';
|
||||
|
||||
// make filelist
|
||||
$files = array();
|
||||
foreach( OC_Files::getdirectorycontent( $dir ) as $i ){
|
||||
$i["date"] = OC_Util::formatDate($i["mtime"] );
|
||||
$files[] = $i;
|
||||
}
|
||||
|
||||
OC_JSON::success(array('data' => $files));
|
||||
|
||||
?>
|
||||
@ -1,78 +1,39 @@
|
||||
<?php
|
||||
/**
|
||||
* ownCloud
|
||||
*
|
||||
* @author Robin Appelman
|
||||
* @copyright 2012 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/>.
|
||||
*
|
||||
* Copyright (c) 2012 Bart Visscher <bartv@thisnet.nl>
|
||||
* This file is licensed under the Affero General Public License version 3 or
|
||||
* later.
|
||||
* See the COPYING-README file.
|
||||
*/
|
||||
|
||||
/**
|
||||
*logging utilities
|
||||
* logging utilities
|
||||
*
|
||||
* Log is saved at data/owncloud.log (on default)
|
||||
* Log is saved by default at data/owncloud.log using OC_Log_Owncloud.
|
||||
* Selecting other backend is done with a config option 'log_type'.
|
||||
*/
|
||||
|
||||
class OC_Log{
|
||||
class OC_Log {
|
||||
const DEBUG=0;
|
||||
const INFO=1;
|
||||
const WARN=2;
|
||||
const ERROR=3;
|
||||
const FATAL=4;
|
||||
|
||||
static protected $class = null;
|
||||
|
||||
/**
|
||||
* 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);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* get entries from the log in reverse chronological order
|
||||
* @param int limit
|
||||
* @param int offset
|
||||
* @return array
|
||||
*/
|
||||
public static function getEntries($limit=50,$offset=0){
|
||||
$datadir=OC_Config::getValue( "datadirectory", OC::$SERVERROOT.'/data' );
|
||||
$logFile=OC_Config::getValue( "logfile", $datadir.'/owncloud.log' );
|
||||
$entries=array();
|
||||
if(!file_exists($logFile)){
|
||||
return array();
|
||||
}
|
||||
$contents=file($logFile);
|
||||
if(!$contents){//error while reading log
|
||||
return array();
|
||||
}
|
||||
$end=max(count($contents)-$offset-1,0);
|
||||
$start=max($end-$limit,0);
|
||||
for($i=$end;$i>$start;$i--){
|
||||
$entries[]=json_decode($contents[$i]);
|
||||
public static function write($app, $message, $level) {
|
||||
if (!self::$class) {
|
||||
self::$class = 'OC_Log_'.ucfirst(OC_Config::getValue('log_type', 'owncloud'));
|
||||
call_user_func(array(self::$class, 'init'));
|
||||
}
|
||||
return $entries;
|
||||
$log_class=self::$class;
|
||||
$log_class::write($app, $message, $level);
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,79 @@
|
||||
<?php
|
||||
/**
|
||||
* ownCloud
|
||||
*
|
||||
* @author Robin Appelman
|
||||
* @copyright 2012 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_Owncloud {
|
||||
static protected $logFile;
|
||||
|
||||
/**
|
||||
* Init class data
|
||||
*/
|
||||
public static function init() {
|
||||
$datadir=OC_Config::getValue( "datadirectory", OC::$SERVERROOT.'/data' );
|
||||
self::$logFile=OC_Config::getValue( "logfile", $datadir.'/owncloud.log' );
|
||||
}
|
||||
|
||||
/**
|
||||
* 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){
|
||||
$entry=array('app'=>$app, 'message'=>$message, 'level'=>$level,'time'=>time());
|
||||
$fh=fopen(self::$logFile, 'a');
|
||||
fwrite($fh, json_encode($entry)."\n");
|
||||
fclose($fh);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* get entries from the log in reverse chronological order
|
||||
* @param int limit
|
||||
* @param int offset
|
||||
* @return array
|
||||
*/
|
||||
public static function getEntries($limit=50, $offset=0){
|
||||
self::init();
|
||||
$entries=array();
|
||||
if(!file_exists(self::$logFile)) {
|
||||
return array();
|
||||
}
|
||||
$contents=file(self::$logFile);
|
||||
if(!$contents) {//error while reading log
|
||||
return array();
|
||||
}
|
||||
$end=max(count($contents)-$offset-1, 0);
|
||||
$start=max($end-$limit,0);
|
||||
for($i=$end;$i>$start;$i--) {
|
||||
$entries[]=json_decode($contents[$i]);
|
||||
}
|
||||
return $entries;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,37 @@
|
||||
<?php
|
||||
/**
|
||||
* Copyright (c) 2012 Bart Visscher <bartv@thisnet.nl>
|
||||
* This file is licensed under the Affero General Public License version 3 or
|
||||
* later.
|
||||
* See the COPYING-README file.
|
||||
*/
|
||||
|
||||
class OC_Log_Syslog {
|
||||
static protected $levels = array(
|
||||
OC_Log::DEBUG => LOG_DEBUG,
|
||||
OC_Log::INFO => LOG_INFO,
|
||||
OC_Log::WARN => LOG_WARNING,
|
||||
OC_Log::ERROR => LOG_ERR,
|
||||
OC_Log::FATAL => LOG_CRIT,
|
||||
);
|
||||
|
||||
/**
|
||||
* Init class data
|
||||
*/
|
||||
public static function init() {
|
||||
openlog('ownCloud', LOG_PID | LOG_CONS, LOG_USER);
|
||||
// Close at shutdown
|
||||
register_shutdown_function('closelog');
|
||||
}
|
||||
|
||||
/**
|
||||
* write a message in the log
|
||||
* @param string $app
|
||||
* @param string $message
|
||||
* @param int level
|
||||
*/
|
||||
public static function write($app, $message, $level) {
|
||||
$syslog_level = self::$levels[$level];
|
||||
syslog($syslog_level, '{'.$app.'} '.$message);
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue