Стандартный способ сохранить строки отладки в программе
Я хотел бы добавить несколько строк отладки в мою программу. Один раз после выполнения выписок он записывает текущий статус в файл.
Я сделал это следующим образом.
public int? DoWork(int x, int y)
{
Log.Write("Received inputs. X an Y values are:"+x+","+y);
bool result = ChekData(x);
if (!result)
{
Log.Write("First input is not valid");
return null;
}
result = ChekData(y);
if (!result)
{
Log.Write("Second input is not valid");
return null;
}
Log.Write("Valid input found");
....
....
}
Я чувствую, что это не стандартная ва, чтобы сделать это. Сохранение текста в коде. После поиска я нашел с помощью файла ресурсов, я могу сохранить эти сообщения, как пара имя-значение.
Но я понятия не имею о стандарте этого. Пожалуйста, посоветуй мне.
В основном для входа я использую Log4Net
2 ответа
Это довольно обычный способ ведения журнала.
Использование файлов ресурсов для регистрации обычно не имеет смысла, потому что:
- он перемещает описательное сообщение из наиболее полезного места - встроенный код
- журналы, наиболее часто используемые оригинальными разработчиками, поэтому получение журналов на японском языке (если строки ресурсов журнала правильно локализованы) редко бывает полезным для англоязычных разработчиков и наоборот.
- избегать локализации некоторых строк (которые используются для регистрации) может быть неудобно, локализация их не является бесплатной...
Если это только для целей отладки, я бы сделал следующее:
Установите соответствующие дебауглевели. Отладочная версия должна быть построена с использованием уровня для отображения всех сообщений. Сборка релиза обычно не требует отладочных выходов. Поэтому отключите уровень сообщения для выпуска выпуска.
Для различия, если вы находитесь в сборке релиза или отладке, вы можете использовать следующие 2 вещи:
#if DEBUG
// enable all tracing
#endif
или если вы также хотите, чтобы ваша сборка выпускала сообщения, если отладчик подключен
if(System.Diagnostics.Debugger.IsAttached)
{
// Someone has attached a debugger, so give more output
}
Вы также можете обернуть логи, если хотите, методом, который оправдывает проверки на отладчик / присоединенный отладчик.