Запись информации о трассировке в приложении Windows Form - PullRequest
1 голос
/ 17 октября 2008

Я знаю, как писать операторы трассировки, которые я могу просматривать в среде веб-форм, но как мне это сделать в приложении Windows Form?

Я внутри статического метода и хочу отобразить SQL-запрос, который он генерирует.

У меня нет доступа к messagebox.show, какие у меня есть варианты?

Ответы [ 5 ]

5 голосов
/ 17 октября 2008

Самый простой способ - использовать System.Diagnostics.Debug.WriteLine или System.Diagnostics.Trace.WriteLine. Если у вас подключен отладчик, сообщения будут отображаться в окне вывода, в противном случае запустите DebugView , чтобы просмотреть сообщения (вам нужно поиграть с фильтрацией, чтобы исключить шум).

2 голосов
/ 17 октября 2008

Вы можете использовать Log4Net .

Log4Net полностью Xml управляемая конфигурация и обеспечивает очень высокая степень растяжимости (Просто внедрить новые Appenders, Filters или макеты).

1 голос
/ 17 октября 2008

Вам нужно показать это в вашей форме? Если нет, вы можете просто выполнить Trace.WriteLine () из запроса и использовать DebugView для его просмотра. Думаю, мне нужно больше информации, если это не поможет.

1 голос
/ 17 октября 2008

Класс System.Diagnostics.Trace будет писать для отслеживания слушателей.

При отладке прослушиватель по умолчанию записывает в окно вывода. В файле конфигурации приложения можно указать других прослушивателей, которые могут перенаправлять вывод трассировки в файл, в журнал событий и т. Д.

В качестве альтернативы используйте каркас журналирования, такой как Log4Net.

0 голосов
/ 17 октября 2008

Вы можете использовать глобальный объект регистрации:

enum LogLevel
{
    Info,
    Warning,
    Error
}

delegate void OnLog (string msg, LogLevel level);

interface ILogger
{
    void Log(string msg, LogLevel level);
    event OnLog;
}

Затем дополните ILogger классом, который вы приобретаете, используя открытый статический метод в классе Program.

А в своей основной форме присоединитесь к событию OnLog и используйте его для печати сообщений для себя. Затем все, что вам нужно сделать, это вызвать метод Log в вашем статическом методе с SQL-запросом.

:)

...