2010-01-26 11 views
16

Aktualnie pracuję nad aplikacją C#, która ma własne rejestrowanie. Gdy są zgłaszane wyjątki, wyjątek jest zapisywany na liście, którą użytkownik może przeglądać w widoku listy. Gdy użytkownik kliknie na wyjątek w widoku listy, ślad stosu wyjątku jest wyświetlany w polu tekstowym. Ale nawet gdy wykonuję program na zdalnym komputerze, ślad stosu pokazuje ścieżki plików do oryginalnych plików źródłowych z komputera, na którym została skompilowana.Nie wyświetlaj ścieżek plików komputera kompilowanego w trakcie śledzenia stosu.

np .:

at C:\Folder1\Folder2\Class1.cs:81 
at C:\Folder1\Folder2\Class2.cs:65 
at C:\Folder1\Folder1\Class3.cs:21 

Tylko wyświetlanie plików źródłowych bez folderów byłoby miło ...

Jak mogę to zmienić?

Czy istnieje rozwiązanie natywne? Czy muszę po prostu manipulować strunami?

+0

Jak wygląda Twój kod logowania? – ChrisF

+0

Po prostu odfiltruj ścieżkę za pomocą wyrażenia Regex. Lub Path.GetFileName(). –

Odpowiedz

5

Ścieżki do pliku są zawarte w plikach "program database" (.pdb). Takie pliki są tworzone podczas kompilacji, a ścieżki w tych plikach są jak na kompilatorze.

Możesz usunąć pliki .pdb z instalacji, ale w ten sposób śledzenie stosu będzie o połowę tak interesujące, jak teraz, ponieważ nie powie Ci, w którym wierszu wystąpił błąd. Zwykle nie uruchamiasz kodu w środowisku produkcyjnym z dołączonymi plikami Pdb.

Jeśli chcesz zachować "interesujące śledzenie stosu", możesz rozważyć zamianę nazw folderów na string, po wywołaniu exceptionObject.toString().

+0

Dziękuję =). Działało to w ten sposób. – Emiswelt

Powiązane problemy