2009-12-04 2 views
20

Я хотел бы напечатать некоторые следы во время обработки запросов.Как использовать вывод консоли в среде ASP.NET?

Но когда я создаю Console.WriteLine («что-то») в этой среде, ничего не отображается.

Что не хватает, что мне нужно сделать, чтобы использовать консоль для печати этих следов?

+2

Что заставляет вас думать, что это консоль? –

ответ

26

Используйте Debug.Write() и посмотрите, как результаты выходят через окно вывода отладчика в среде IDE.

В качестве альтернативы используйте функцию ASP.NET trace, которая достаточно мощная. После того, как вы включили отслеживание, вы можете перейти на страницу trace.axd в корневой каталог вашего веб-приложения. На этой странице будут отображаться сообщения трассировки для вашего приложения.

+0

Могу ли я создать какой-то выделенный вывод для своего приложения? Я нашел Debug.Write как лучшую альтернативу здесь, чтобы сделать трассировку, но другие трассировки выполняются asp.net там, я только хотел бы видеть мои следы. –

+0

Да. Перейдите на страницу 'trace.axd' в корневом каталоге вашего веб-приложения. Если трассировка включена для вашего приложения, на этой странице будут отображаться только сообщения трассировки для вашего приложения. – CesarGon

+0

Я не могу получить debug.print или debug.write, чтобы перейти в окно вывода для веб-приложения VB. –

0

Где вы ищете выход?

Console.WriteLine() записывает в командную строку - а не на веб-страницу. Либо используйте Response.Write() для записи на веб-страницу, либо запустите приложение в отладчике Visual Studio, чтобы посмотреть на вывод командной строки.

+0

Я смотрю на командную строку/вывод, ни одна из них ничего не показывает. –

4

Вы можете использовать Response.Write для записи вывода на страницу для отладки или использования оповещения в javascript или даже записи в файл журнала. Существует много способов получить вывод отладки. Также есть log4net для .Net, который вы можете использовать (аналогично log4j)

3

Учитывая, что это приложение ASP.NET, я хотел бы сделать:

Page.Trace.Write ("Something here"); 

Затем включите трассировку либо для page or the application, а затем просто перейти к ~/Trace.axd, чтобы увидеть результаты (они могут также в конце вывода страницы, в зависимости от выбранного вами параметра конфигурации).

9

В дополнение к методам, уже упоминалось, вы можете просто написать в лог-файл:

File.AppendAllText(@"c:\log.txt", @"Debug Message Here!" + Environment.NewLine); 

Конечно, вы могли бы использовать Server.MapPath написать файл в веб-каталоге.

7

Я знаю, что это поздно, но вы можете написать в консоли Javascript из вашего C# скрипт, используя следующий класс

public static class Javascript 
{ 
    static string scriptTag = "<script type=\"\" language=\"\">{0}</script>"; 
    public static void ConsoleLog(string message) 
    {  
     string function = "console.log('{0}');"; 
     string log = string.Format(GenerateCodeFromFunction(function), message); 
     HttpContext.Current.Response.Write(log); 
    } 

    public static void Alert(string message) 
    { 
     string function = "alert('{0}');"; 
     string log = string.Format(GenerateCodeFromFunction(function), message); 
     HttpContext.Current.Response.Write(log); 
    } 

    static string GenerateCodeFromFunction(string function) 
    { 
     return string.Format(scriptTag, function); 
    } 
} 

Таким образом, вы можете видеть ваши сообщения журнала в режиме реального времени, как вы щелкаете через сайт , как и в js.

+1

Итак, это тот ответ, который я действительно искал, но действительно ли это самый простой способ? Звучит немного запутанно, чтобы распечатать тег сценария и вызвать console.log, чтобы распечатать консоль JS. Просто запись в журнал будет просто public public void ConsoleLog (строковое сообщение) {Response.Write ("")} '.Но все же кажется, что он должен быть построен ... – Uxonith

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