Pergunta

Eu tenho que desenvolver um aplicativo usando C # .net que tem de ser executado uma vez por dia. Ele só funciona para no máximo um minuto, de modo a desenvolver um serviço do Windows é um exagero e uma tarefa agendada é a forma adequada.

No entanto, tenho algumas perguntas sobre como o aplicativo pode se comunicar seus resultados:

  • Como faço para indicar para o agendador de tarefas que a tarefa falhou? É este via código de saída do programa?
  • Como faço para registrar informações de saída? É a saída do console automaticamente capturado ou eu tenho de escrever para o visualizador de eventos explicitamente?
Foi útil?

Solução

Em resposta às suas perguntas -

  1. Se uma tarefa falha porque ele lançou uma exceção desmarcada, você verá que no visualizador de agendou tarefas, haverá um 'Último resultado' com um valor algo como 0xe0434f4d. Alternativamente, se você retornar um código de saída que vai ser também ser mostrado na última coluna Resultado do espectador tarefa agendada.

  2. Escrevendo para o console por exemplo Console.WriteLine("blah"); não vai aparecer em qualquer lugar. Você precisaria de escrever para o log de eventos ou para um arquivo de log.

Outras dicas

Se você vai a Log File maneira, você ainda pode usar Console.WriteLine("blah");. O truque é para redirecionar o padrão Fora e Erro córregos:

        StreamWriter mylog = new StreamWriter("mylog.log");
        Console.SetOut(mylog);
        Console.SetError(mylog);

Você também precisa liberar os buffers, muitas vezes, para garantir que o arquivo de log contém informações atuais.

            Console.Out.Flush();

Este é rápida e suja, você realmente deve usar o Log de Eventos do Windows ou log4net .

AFAIK o programador apenas começa um processo. Você pode usar o log de eventos ou de outro sistema de registro para registrar as informações que você precisa para se referir a mais tarde.

Log4net é uma estrutura de log muito bom, completo. Posso altamente recomendável.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top