2010-02-26 11 views
12

che uso TextWriterTraceListener (System.Diagnostics) nella mia applicazione per tracciare diverse cose come eccezioni, ...TextWriterTraceListener e traccia i nomi dei file con GUID

L'applicazione è in esecuzione su un server terminal e se ci sono molti utenti che lo usano simultaneamente, l'ascoltatore inizia a creare molti tracefile con i numeri di telefono GUID casuali nel nome file.

Esistono possibilità o soluzioni alternative per evitare questo comportamento?

risposta

12

Ho appena dato un'occhiata alla documentazione per TextWriterTraceListener e c'è una nota circa 1/3 del modo in basso nella pagina

Se viene effettuato un tentativo di scrivere su un file che è in uso o non disponibile, il nome del file è automaticamente preceduto da un GUID

Quindi, questo sembra essere di progettazione. Se il file è effettivamente non disponibile, non c'è nulla che possa essere fatto al riguardo con l'implementazione corrente. Quello che potresti provare a fare è scrivere un'implementazione personalizzata di TextWriterTraceListener che sovrascrive i metodi Write/WriteLine rilevanti in modo che l'output vada a un file, per utente, con un nome che meglio si adatta alle tue esigenze.

Se ciò che si desidera è per TUTTO la registrazione da TUTTI gli utenti sul Terminal Server per andare a un singolo file, allora sarà quasi certamente necessario avere una sorta di processo di "terze parti" in esecuzione che "possiede" il file e sincronizza le scritture su di esso, come un servizio di Windows che viene chiamato dal tuo Custom TextWriterTraceListener

+1

Questo non spiega la situazione in cui mi trovo, con un singolo pool di applicazioni, eseguendo un singolo processo di lavoro, scrivendo su un file specificato nome e * ancora * spamming più file di log duplicati con nome guid. Non ci possono essere altri processi che tentano di accedere a quel file perché solo uno è configurato per usarlo. –

+0

@ TomW - Sono nella stessa situazione. Penso che le richieste parallele elaborate da IIS siano da biasimare. Forse se c'è un file di log per-thread si comporterebbe meglio. –

Problemi correlati