Em um aplicativo J2EE (como um em execução no WebSphere), quando eu uso System.out.println()
, meu texto sai para o padrão, que é mapeado para um arquivo pelo console administrativo do WebSphere.
Em um aplicativo ASP.NET (como um executado no IIS), para onde vai a saída Console.WriteLine()
? O processo do IIS deve ter um stdin, stdout e stderr; mas o stdout está mapeado para a versão do Windows de / dev / null ou estou perdendo um conceito-chave aqui?
Não estou perguntando se devo fazer logon (uso log4net), mas para onde vai a saída? Minhas melhores informações vieram dessa discussão, na qual eles dizem que Console.SetOut()
podem mudar o TextWriter
arquivo, mas ainda não responderam à pergunta sobre qual é o valor inicial do console ou como configurá-lo em config / fora do código de tempo de execução.
fonte
Respostas:
Se você observar a
Console
classe no .NET Reflector , descobrirá que, se um processo não tiver um console associadoConsole.Out
eConsole.Error
for apoiado porStream.Null
(empacotado dentro de aTextWriter
), que é uma implementação fictíciaStream
que basicamente ignora todas as entradas e não dá saída.Portanto, é conceitualmente equivalente a
/dev/null
, mas a implementação é mais simplificada: não há E / S real ocorrendo com o dispositivo nulo.Além disso, além da chamada
SetOut
, não há como configurar o padrão.fonte
Se você usar em
System.Diagnostics.Debug.WriteLine(...)
vez deConsole.WriteLine()
, poderá ver os resultados na janela Saída do Visual Studio.fonte
Eu encontrei essa pergunta tentando alterar a saída de log do DataContext para a janela de saída. Então, para qualquer pessoa que tente fazer o mesmo, o que eu fiz foi criar isso:
E depois disso: dc.Log = new DebugTextWriter () e posso ver todas as consultas na janela de saída (dc é o DataContext).
Dê uma olhada nisto para obter mais informações: http://damieng.com/blog/2008/07/30/linq-to-sql-log-to-debug-window-file-memory-or-multiple-writers
fonte
TextWriter
?dc.Log = s => Debug.WriteLine(s);
.Se você estiver usando o IIS Express e iniciá-lo por meio de um prompt de comando, ele deixará a janela do DOS aberta e você verá
Console.Write
instruções lá.Por exemplo, abra uma janela de comando e digite:
Isso pressupõe que você tenha um diretório de site em C: \ Projects \ Website1. Ele iniciará o IIS Express e exibirá as páginas no diretório do site. Isso deixará as janelas de comando abertas e você verá as informações de saída lá. Digamos que você tenha um arquivo lá, default.aspx, com este código:
Organize o navegador e as janelas de comando para poder vê-los na tela. Agora digite no seu navegador:
http://localhost:1655/
. Você verá Olá! na página da web, mas na janela de comando você verá algo comoSimplifiquei o código em um bloco de código na marcação, mas qualquer instrução do console no seu code-behind ou em qualquer outro lugar do seu código também será exibida aqui.
fonte
System.Diagnostics.Debug.WriteLine(...);
coloca na Janela Imediata no Visual Studio 2008.Vá para o menu Debug -> Windows -> Immediate :
fonte
Output
além doImmediate Window
Thanks!Simplesmente não há console ouvindo por padrão. Executando no modo de depuração, há um console conectado, mas, em um ambiente de produção, é como você suspeitava, a mensagem simplesmente não vai a lugar algum porque nada está escutando.
fonte
A menos que você esteja em um aplicativo de console rigoroso, eu não o usaria, porque você realmente não pode vê-lo. Eu usaria Trace.WriteLine () para informações do tipo depuração que podem ser ativadas e desativadas na produção.
fonte
O
TraceContext
objeto no ASP.NET grava nasDefaultTraceListener
saídas que saem para a saída padrão do processo host . Em vez de usarConsole.Write()
, se você usarTrace.Write
, a saída irá para a saída padrão do processo.Você pode usar o
System.Diagnostics.Process
objeto para obter o processo ASP.NET do seu site e monitorar a saída padrão usando oOutputDataRecieved
eventofonte
se você usou o NLog no seu projeto ASP.net, pode adicionar um destino para o Depurador :
e grava logs nesse destino para os níveis que você deseja:
agora você tem saída do console como o Jetty na janela "Saída" do VS e verifique se está executando no modo de depuração (F5).
fonte
Isso é confuso para todos quando se trata do IISExpress. Não há nada para ler as mensagens do console. Por exemplo, nos aplicativos ASPCORE MVC, ele configura usando appsettings.json, o que não faz nada se você estiver usando o IISExpress.
Por enquanto, você pode adicionar loggerFactory.AddDebug (LogLevel.Debug); na seção Configurar e, pelo menos, mostrará seus logs na janela Saída de depuração.
Boas notícias, o CORE 2.0 está mudando: https://github.com/aspnet/Announcements/issues/255
fonte
Mac, No modo de depuração, há uma guia para a saída.
fonte
Em um aplicativo ASP.NET, acho que vai para a janela Saída ou Console, que é visível durante a depuração.
fonte