Где вывод консоли планировщика заданий? (Консольное приложение C #) - PullRequest
0 голосов
/ 03 мая 2018

Я запускаю консольное приложение C # для windows и передаю пару аргументов через Task Scheduler. Он работает весь день, загружая данные плоских файлов, созданные другими приложениями, на сервер SQL. Программа прерывается с перебоями, и у меня есть логика Try / Catch, которая записывает информацию об исключении, используя Console.WriteLine ().

Так что в основном мне нужно отследить местоположение вывода консоли, чтобы я мог предпринять шаги для устранения периодических сбоев. Я хорошо осмотрел онлайн, думая, что это должно быть довольно распространенным требованием для диагностики ошибок в запланированных приложениях Task Scheduler. Мой онлайновый поиск выявил пару путей решения, но не дал прямого ответа относительно того, куда выводятся данные консоли при запуске консольного приложения c # напрямую через планировщик задач.

Два обходных пути, которые я видел:

(1) Получить Task Scheduler для запуска пакетного сценария Windows (файл .bat) вместо непосредственного запуска приложения консоли (файл .exe). В пакетном сценарии используйте «>» или «>>», чтобы перенаправить вывод консоли в плоский файл (например, C: \ app \ myapp.exe arg1 arg2> «C: \ log \ myapp_console_output.txt»)

(2) Очень похожее решение - заставить планировщик заданий запускать командную строку windows cmd.exe с параметром / C и передавать аргументы в cmd.exe для запуска моего консольного приложения, а также перенаправлять вывод консоли. например что-то вроде: cmd.exe / C "C: \ app \ myapp.exe" arg1 arg2> "C: \ log \ myapp_console_output.txt"

Хотя я признаю, что описанные выше обходные пути вполне могут помочь мне зафиксировать будущие сбои, на самом деле это не помогает мне отследить выходные данные от прерывистых сбоев, которые уже произошли. Они также выглядят довольно грязными обходными путями для достижения того, что, как я думал, было довольно распространенным стандартным требованием.

Может ли кто-нибудь подтвердить, что вывод консоли определенно где-то не сохраняется при запуске консольного приложения c # напрямую через планировщик задач?

...