lunedì 21 aprile 2008

Log

Ho creato le interfacce necessarie per loggare gli eventi.
Il componente GUI passera' ad ogni altro componente (ancora dobbiamo decidere in che modo) un oggetto di tipo LogWriter quando parte una nuova simulazione. Tale oggetto rimarra' valido finche' la simulazione viene terminata. Ogni componente dovra' utilizzare tale oggetto per loggare.

Per loggare un evento e' sufficiente instanziare un oggetto di tipo LogEntry con i dati desiderati e quindi passarlo al LogWriter tramite il metodo addEntry.
Ecco un esempio:

// aggiungo al LogWriter lw un evento che segnala l'avvio di una simulazione
Log.LogWriter lw;
Log.LogEntry l = new Log.LogEntry( Log.LogEntry.EntryType.INFORMATION, "Gui.MainGui", "Simulazione avviata" );
l.setDescription( "Una nuova simulazione e' appena stata avviata in modalita' batch." );
l.setParameter( "modalita", "batch" );
lw.addEntry( l );


Alcune note:
  • Come autore dell'evento e' possibile specificare una stringa contenente punti (come ho mostraro nell'esempio precedente, dove l'autore e' "Gui.MainGui"), in tal modo la gui che si occupa di mostrare i log permettera' di filtrare l'autore in modo piu' avanzato: potra' mostrare tutti gli eventi ("*"), gli eventi di Gui e dei suoi sottocomponenti ("Gui.*") o anche gli eventi di solo Gui.MainGui: ("Gui.MainGui")
  • I parametri aggiuntivi (settabili col metodo setParameter) devono venire documentati. Tali parametri potranno infatti venire gestiti dalla gui per mostrare informazioni speciali su un evento. Se ad esempio un evento di titolo "Car crash" contiene i parametri "x" ed "y", quando tale evento viene selezionato dall'utente sara' possibile inserire una bandierina sulla mappa alle coordinate specificate da "x" ed "y".

Al seguente indirizzo potete trovare un archivio contenente l'interfaccia LogWriter e le classi LogEntry e Logger. Quest'ultima non dovrebbe servirvi (viene utilizzata soltanto dalla gui), ma potete usarla temporaneamente per utilizzare il vostro componente prima che venga assemblato assieme agli altri.
Log.tar.gz

0 Commenti:

Posta un commento

Iscriviti a Commenti sul post [Atom]

<< Home page