Napisałem coś takiego, może komuś się przyda.
<?php
/**
* @author Rafał Robakowski <rafal.robakowski@gmail.com>
* @version 1.0
*/
/**
* Przetrzymuje scieżke do folderu gdzie będą zapisywane logi
*/
define('logs_dir', $site['dir'] . 'temp/logs/');
/**
* Rozszerzenie klasy exception
*/
class system_Exception extends Exception {
}
/**
* Klasa służacą do obsługi logów
*/
class logs {
/**
* Tworzy nowy plik z logiem lub dopisuje już do istniejącego pliku
*
* @param text $description
*/
public function generate_log($description) {
/*
* Jeśli istnieje juz plik z dzisiejszym logiem
*/
/*
* Jeśli zostanie pobrana zawartość z istniejącego już loga
*/
$amount_registry = count($logs); $new_registry = $amount_registry;
$logs[$new_registry]['ip'] = $_SERVER['REMOTE_ADDR'];
$logs[$new_registry]['date'] = $date;
$logs[$new_registry]['time'] = date('G:i:s'); $logs[$new_registry]['description'] = $description;
/*
* Jeśli zapisywanie do pliku jest możliwe
*/
throw new system_Exception('Nie można nadpisać treści do istniejącego pliku. Sprawdź nadane uprawnienia !');
file_put_contents
(logs_dir
. $date . '.txt', serialize($logs)); return true;
/*
* Jeśli odczytanie istniejącego już loga nie powiedzie się
*/
} else
throw new system_Exception('Nie można odczytać istniejącego pliku. Sprawdź nadane mu uprawnienia !');
/*
* Jeśli plik z dzisiejszym logiem nie został jeszcze utworzony
*/
} else {
$logs[0]['ip'] = $_SERVER['REMOTE_ADDR'];
$logs[0]['date'] = $date;
$logs[0]['time'] = date('G:i:s'); $logs[0]['description'] = $description;;
/*
* Jeśli zapis do pliku powiedzie się
*/
if ( file_put_contents
(logs_dir
. $date . '.txt', serialize($logs)) ) return true;
else
return false;
}
}
/**
* Wyswietla logi z danego dnia ( pliku )
*
* @param string $date
*/
public function view_log($date) {
foreach ( $day_logs as $key_logs => $value_logs ) {
echo '[IP: ' . $value_logs['ip'] . ' - ' . $value_logs['date'] . ':' . $value_logs['time'] . '] [ ' . $value_logs['description'] . '] <BR><BR>'; }
}
}
/**
* Usuwa wszystkie logi w folderze
*/
public function remove_all_logs() {
while ( false !== ($filename = readdir($handle)) ) { if ( $filename <> '.' && $filename <> '..' )
}
}
/**
* Usuwa logi z wybranego dnia
*
* @param string $date
*/
public function remove_one_log($date) {
throw new system_Exception('Wybrany plik najprawdopodobniej nie istnieje !');
if ( !unlink(logs_dir
. $date . '.txt') ) throw new system_Exception('Usunięcie wybranego pliku było niemożliwe. Sprawdź nadane uprawnienia !');
}
}
?>
Co o tym sadzicie ? ;]