martedì 27 settembre 2011

Log For Sharepoint

Ciao a tutti,

Oggi voglio mostrarvi una feature per i log da me implementata, è abbastanza semplice da utilizzare e spero possa tornarvi utile.

Si occupa di scrivere i log su liste sharepoint cosi eviteremo di andare sempre a guardarci i log che scrive sharepoint in quel file di testo, è ancora in fase di sviluppo ma se magari qualcuno vuole darmi una mano è ben accetto.

Questo è il link per il download del sorgente



E ora ecco la spiegazione di come funziona, e di come installarla

Nel Progetto ci sono 2 feature la prima installa tutto il necessario, mentre la seconda modifica il web.config in modo di inserire l'error module ma io vi consiglio di inserire a mano questa riga nel web.config o se proprio volete usare la feature di farvi un backup del web.config (non dovrebbe succedere niente ma non si sa mai! meglio un backup!)
Questa va sotto
del web. config
Invece questa è la chiamata per scrivere i log

void WriteLogWithException(Exception Ex,string list,string fromPage,string ErrorType)

i parametri più importanti sono l'exception e la lista che corrisponde alla lista dove scrivere i log all'installazione della feature viene creata la seguente lista

LogForSharepoint - LastLogs

Questo è un esempio di chiamata

WriteLog.WriteLogWithException(exception, "LogForSharepoint - LastLogs", HttpModule-" + pageUrl, "Application Error HttpModule Intercept");

se il parametro list è uguale a string.empty o null viene usata la lista di default per scrivere i log

Ora vi spiego in breve come funziona la feature.

Dunque all'installazione vengono create 2 liste e una document library.

Le 2 liste sono

LogForSharepoint - LastLogs : Dove vengono salvati i log è possibile creare anche altre liste per scrivere i log utilizzando il list template "LogForSharepoint - ListLogs" in modo che possiamo dedicare magari ogni lista ad un area del sito oppure inserirli tutti nella stessa lista come preferiamo.

Poi c' è la lista

LogForSharepointConfiguration che come dice il nome stesso non è nient'altro che una lista di configurazione per la feature e sono presenti questi 3 item

<Row>

<Field Name="Title" >MaxNumberItem</Field> Il numero massimo di Item prima che i log vengono archiviati nell'histoty

<Field Name="Value" >3</Field>

</Row>

<Row>

<Field Name="Title" >DefaultSharepointLogList</Field>

<Field Name="Value" >LogForSharepoint - LastLogs</Field> La lista di default dove scrivere i Log quella che viene usata dall'httpmodule

Row>

<Row>

<Field Name="Title" >DefaultSharepointHistoryList</Field>

<Field Name="Value" >HistoryLog</Field> La lista per l'history

</Row>

Poi è presente una document library chiamata history log

Dove ogni X(MaxNumberItem + 1) record tramite un event handler presente nella lista dei log.. tutti i log tranne l'ultimo vengono spostati in un file di testo che viene archiviato nella lista Historylog.

L'httpmodule naturalmente, si occupa di catturare tutti gli errori che non vengono gestiti, e scriverli nella lista di default.

Dovrebbe essere tutto

Resto a disposizione per chiarimenti e suggerimenti