Ciao ragazzi,
sto lavorando a una applicazione desktop realizzata in WPF. L'applicazione è molto semplice tanto che (volendo fare un po' di accademia), non esiste ServiceLayer ma il PresentationLayer consuma il BusinessLayer. La domanda è: dove li metto i log? Chi ci ha lavorato prima di me li ha messi a livello di ViewModel (presentation layer). E' una scelta corretta in uno scenario simile (i.e. senza ServiceLayer)?
Ciao,
petrux
--
Solitamente usando Castle e Log4Net io ho la Log4Net facility, la quale per ogni entità che dichiara un ILogger lo popola con il logger giusto. Quindi io ho i log lato client nei ViewModel, e quelli lato server nel servizio, più un appender custom di log4net che permette di ivniare i log del client al server tramite un management service.msc.
In questo modo vivo abbastanza felice :)
alk.
--Blog Eng: http://www.codewrecks.com/blogBlog Ita: http://blogs.ugidotnet.org/rgmTwitter: http://twitter.com/alkampfer
Siccome la tua applicazione non e' complessa io non aggiungerei ulteriori layers. Nel mio caso noi abbiamo un servizio ILogger che viene poi mappato su Log4Net. Perche' Log4Net? Perche' e' completo e super configurabile e basta crearti il tuo specifico writer.
Noi abbiamo un layer a parte, statico che va bootstrappato da qualche parte con pattern singleton. Da li logghiamo tutto e adesso stiamo considerando la capacita' di PostSharp che ti consente di marcare un metodo come "loggable" ed evitarti un noioso try/catch.
Concordo, se l'applicativo è semplice, postsharp è la soluzione migliore, perchè ti permette di agire a livello trasversale. La cosa da evitare come la peste è andare tipo in ogni metodo e mettere il trycatch con il log etc etc, ma centralizzare comunque queste operazioni in un unico punto, quindi AOP fatta con una libreria come Castle o ancora più semplice un bel PostSharp come dice Raffaeu e vivi felice.
Alk.