Non ho creato un’estensione per yii e nemmeno un wiki perche è davvero banale questo codice:
Come al solito mi andava di fare una cosa che ANCORA yii non fa: separare i log degli utenti per nome utente. Come al solito ho ficcato il naso nel file di configurazione ed ho guardato il nome della classe del log: CFileLogRoute. A questo punto ho creato la mia SensoLog ed ho riscritto il metodo che si occupa di definire la cartella di salvataggio:
class SensoLog extends CFileLogRoute {
public function setLogPath($value) {
$value .= Yii::app()->user->name . DIRECTORY_SEPARATOR;
if (!file_exists($value))
mkdir(strtolower($value), 0755);
parent::setLogPath($value);
}
}
NOTA 1il mio file di log si trova allo stesso livello della cartella protected (non dentro). Quindi in questo mio sitarello che sto costruendo avrò /log/admin con tutto il log dell’amministratore e /log/demo/ con tutti i log dell’utente demo.
NOTA 2 il file di log deve essere scrivibile altrimenti non potremo ne scrivere nel log ne creare cartelle.