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!)
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