Стандартный способ сохранить строки отладки в программе

Я хотел бы добавить несколько строк отладки в мою программу. Один раз после выполнения выписок он записывает текущий статус в файл.
Я сделал это следующим образом.

    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 
}

Вы также можете обернуть логи, если хотите, методом, который оправдывает проверки на отладчик / присоединенный отладчик.

Другие вопросы по тегам