2010-09-01 4 views
1

Я делаю небольшое изменение в существующем приложении, чтобы пользователи могли отправлять нам файл журнала, когда что-то не так. Несмотря на то, что приложение C# использует Microsoft.VisualBasic.Logging.FileLogTraceListener.Где находится путь Microsoft.VisualBasic.Logging temp точно

Это получает установку так:

FileLogTraceListener fileLogTraceListener = listener as FileLogTraceListener; 
fileLogTraceListener.Location = LogFileLocation.TempDirectory; 

Мой вопрос: Где файлы журнала идут?

Это то же место, что и Path.GetTempPath()?

Я видел кучу других сообщений, задающих похожие вопросы, но я должен быть уверен, что любой компьютер/операционная система, на котором работает это приложение, может забрать журналы. Я полагаю, что нет способа заглянуть внутрь класса FileLogTraceListener, чтобы узнать, что он делает при работе с temp?

ответ

0

Это то же место, что и Path.getTempPath(). Отражатель показал мне это:

private string get_LogFileName() 
{ 
    string tempPath; 
    switch (this.Location) 
    { 
     case LogFileLocation.TempDirectory: 
      tempPath = Path.GetTempPath(); 
      break; 

+1 к Nate Bross - отражатель помог найти ответ

2

При отсутствии документации, вы можете:

  • Используйте Reflector, чтобы посмотреть на источник
  • Использование Process Monitor от SysInternals, чтобы увидеть, что IO ваш процесс делает.
  • Напишите тестовое приложение, которое создает два файла: один с Path.GetTempPath() и один с VB Logger.
+1

или приклеивать контрольную точку на линии и проверить Значение – Pondidum

+0

Спасибо, я посмотрю на отражатель - Я знаю, что они пишут на одном и том же месте на моем компьютере, но я обеспокоен тем, что он может работать по-разному под Vista, сервером Windows и т. д. –

+1

@Pondidum выглядит как его Enum, поэтому я не думаю, что он будет иметь реальный путь в runtime, по крайней мере, это публично из класса. – Nate

Смежные вопросы