Domanda

Voglio aggiungere alcune funzionalità di registrazione a un'applicazione cf.net in esecuzione su WM6 Pro. Sto esaminando le eccezioni di registrazione e alcune delle sezioni più sensibili del codice. Vorrei che i log venissero archiviati sia localmente (cioè sul dispositivo), sia caricati in modo affidabile anche su un server (dovranno essere messi in coda, la mia app è occasionalmente connessa).

Qualcuno sa se questo è possibile con log4net o dovrò scrivere il mio sistema di registrazione? Qualcuno ha qualche puntatore?

È stato utile?

Soluzione

Se si utilizza log4net per questo, NON utilizzare l'opzione appender UDP per accedere a un server remoto. Se il dispositivo WM è collegato a un PC tramite ActiveSync e accede alla rete tramite il PC, il tentativo di utilizzare UDP provoca l'arresto anomalo di ActiveSync in un modo che richiede un riavvio del PC e un ripristino software del dispositivo WM. Ho avuto un demo orribilmente sbagliato a causa di questo (abbiamo perso un contratto enorme).

log4net potrebbe essere eccezionale in altri ambienti, ma l'ho trovato un PITA e non vale la pena in Windows Mobile. Stai meglio scrivendo la tua semplice classe Logger che utilizza un TextWriter per scaricare informazioni in un file di testo (per la registrazione locale) o chiama una funzione di servizio web su un server remoto. Hai il controllo totale su ciò che viene scritto dove e non hai bisogno di assurdità Chainsaw solo per leggere i tuoi registri.

Altri suggerimenti

È possibile farlo. Basta scrivere appender personalizzato che controlla se il server è disponibile e, in caso contrario, memorizza i dati in sqlite.

http: // karlagius. wordpress.com/2008/01/02/writing-a-custom-appender-for-log4net/

SQL CE (Compact Edition) supporta la replica. È possibile archiviare le eccezioni localmente, quindi sincronizzare l'archivio dati locale con un server centrale quando connesso. Alcuni dettagli qui .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top