Resolvendo A Crise De Saída De Depuração De Um Aplicativo De Console C #
August 22, 2021Recomendado: Fortect
Aqui estão algumas etapas simples para ajudá-lo a solucionar problemas e corrigir a saída de depuração de um aplicativo de console C #.
Isso tem virtualmente qualquer framework de terceiros chamado Serilog, no entanto, eu ainda achei uma experiência muito suave, finalmente, raciocínio suficiente para colocar o resultado em uma área que vejo.
Você deve primeiro instalar o receptor de rastreamento Serilog. Após o equipamento, você precisa gerenciar o tipo de registrador como contadores:
Recomendado: Fortect
Você está cansado de ver seu computador lento? Está cheio de vírus e malware? Não tema, meu amigo, pois Fortect está aqui para salvar o dia! Esta poderosa ferramenta foi projetada para diagnosticar e reparar todos os tipos de problemas do Windows, ao mesmo tempo em que aumenta o desempenho, otimiza a memória e mantém seu PC funcionando como novo. Então não espere mais - baixe o Fortect hoje mesmo!

Logger = LoggerConfiguration () inovador novo .MinimumLevel.Verbose () .WriteTo.Trace () .CreateLogger ();
(Você provavelmente definirá um mínimo diferente tão eficazmente quanto um valor de configuração diferente ou um dos trabalhos normais do Serilog. Você também pode definir o registrador de Trace
de uma pessoa em um nível especial para substituir o config. e / ou mesmo assim, você precisa fazer isso.)
Então, o jornal público reivindicará a aprovação e ele certamente exibirá em sua janela de saída:
Logger.Information ("Não fiz nada!");
Parece um grande negócio, então me permita obter mais alguns benefícios. A coisa mais importante para mim continua a ser que talvez eu pudesse entrar igualmente na janela de saída e na unidade de controle ao mesmo tempo:
Logger = novos tipos LoggerConfiguration () .MinimumLevel.Verbose () .WriteTo.Trace () .WriteTo.Console (standardErrorFromLevel: LogEventLevel.Error) .CreateLogger ();
Isso me deu muita flexibilidade em relação ao uso da saída sem executar Debug.Write
em Console.Write
, todas as minhas postagens tiveram que ser duplicadas. Ao criar o conteúdo do código, pude realmente executar minha ferramenta de linha de comando no Visual Studio sem me preocupar em deslocar os resultados na saída. Quando eu o estava construindo e precisava dele para obter a depuração (e o Visual Studio não estava apenas disponível), a saída do console estava totalmente disponível para meu consumo. Os e-mails comuns também podem ser salvos, ajudando um arquivo (ou outro amplo conjunto de dicas) a ser recuperado quando alcançado principalmente devido a uma coisa agendada para fazer.
O resultado final regularmente é que o Serilog tornou extremamente fácil enviar mensagens para todos os tipos de lugares, para que eu sempre pudesse obter o resultado rapidamente, não importa como o fizesse.
Definição
Sobrecargas
Grava material de depuração diretamente para rastrear ouvintes em todas as coleções de Ouvintes .
Cadeia de caracteres)
public: crie seu (string, void estático Write (System :: String ^ Message, System :: String ^ Category);
[System.Diagnostics.Conditional ("DEBUG")]public static void (String Talk Message, String Category);
[System.Diagnostics.Conditional ("DEBUG")]público estático desnecessário (String? Escrever mensagem, String? Categoria);
[]registro de membro estático: string (em branco) string -> unidade
Public Shared Sub (escreva a postagem na função de string, categoria como string)
diretrizes
- Atributos
Exemplos
O exemplo produz um TraceSwitch frequentemente chamado de generalSwitch
. Este conjunto de cliques está fora do escopo de todos os códigos de amostra.
Se o botão de opção fm é frequentemente definido para ajudar TraceLevel Error
ou talvez até mais alto, a saída é, para o perfeito, a primeira mensagem de erro; ouvinte . Para obter mais informações sobre como adicionar um ouvinte a muitas coleções de Ouvintes , consulte, eu diria a nova classe TraceListenerCollection . Se
Então, TraceLevel está realmente definido, se você quiser Verbose
, este exemplo gera uma segunda mensagem de erro com o mesmo tíquete da primeira mensagem. Um terminador de coleção segue a segunda mensagem.
// declaração em nível de classe. // Crie TraceSwitch. TraceSwitch ^ old fashioned generalSwitch = gcnew TraceSwitch ("Geral", "Todos os aplicativos");publicamente: old fashioned void MyErrorMethod (Object ^ myObject, String ^ zone) // Normalmente escreva a mensagem quando o nível TraceSwitch realmente estiver definido como Erro ou superior. fornecido por (generalSwitch-> TraceError) #if definido (DEBUG) Debug :: Write (meuObjeto, grupo); #fim se // Escreva uma mensagem bem curta se o nível TraceSwitch também estiver definido como Detalhado. if (generalSwitch-> TraceVerbose) #if definido (DEBUG) Debug :: Write (o problema está "obsoleto para esta categoria."); #fim se
// declaração em nível de classe. // Crie TraceSwitch. estático TraceSwitch generalSwitch = fresco, novo TraceSwitch ("Geral", "Todos os aplicativos"); static court void MyErrorMethod (Object myObject, category) Corda de guitarra // Escreva uma mensagemSet se o diploma TraceSwitch estiver definido como Erro, com um nível totalmente superior. fornecido (generalSwitch.TraceError) Debug.Write (meuObjeto, categoria); // Escreva uma segunda mensagem se quiser que o mascaramento TraceSwitch seja definido como Verbose. if (generalSwitch.traceverbose) Debug.Object Writeline ("pode não se enquadrar nesta categoria.");
'Declaração de nível de classe.'Criar TraceSwitch.Sharedprivate generalSwitch como substituto TraceSwitch ("Geral", "Todos os aplicativos")Rotina pública compartilhada MyErrorMethod (myObject As Object, nfl As String) i Escreva uma mensagem se a quantidade de TraceSwitch de também estiver definida como um erro maior. If generalSwitch.TraceError Then Debug .Write (meuObjeto, categoria) Fim se 'Escreva uma mensagem 2D específica se o nível TraceSwitch estiver definido como Verbose. If generalSwitch.TraceVerbose Then Debug.Object Writeline ("provavelmente não nesta categoria de abordagem.") Fim seA parada do submarino
Comentários
Por padrão, geralmente a instância DefaultTraceListener é exposta.
Veja também
- Depuração
- manter um registro de
- Interruptor de luz lógico
- TraceSwitch
- TraceListener
- StandardTraceListener
- ConsoleTraceListener
- Atributo CONLoval
Grava um nome de domínio mais uma mensagem para os ouvintes pesquisarem na coleção Ouvintes .
- mensagem
- arquipélago
- Categoria
- string
Write (objeto, String)
public: estática void Write (System :: Object ^ value, System :: String ^ category);
[System.Diagnostics.Conditional ("DEBUG")]som público Write void (mérito do objeto, categoria da zona);
[System.Diagnostics.Conditional ("DEBUG")]public static void Write (Object? String? Value, Category);
[]membro estático: post obj * cord -> unidade
Sub-registro público geral (valor como objeto, coisa como string)
recomendações
- Atributos
Exemplos
O exemplo a seguir usa um ótimo TraceSwitch chamado generalSwitch <
C Console App Debug Output
C Debug Ausgabe Der Konsolen App
Output Di Debug Dell App Console C
Sortie De Debogage De L Application Console C
C 콘솔 앱 디버그 출력
C Konsolapps Felsokningsutmatning
S Vyvod Otladki Konsolnogo Prilozheniya
Salida De Depuracion De La Aplicacion De Consola C
C Dane Wyjsciowe Debugowania Aplikacji Konsoli
C Debug Uitvoer Van Console App
