2013-12-11 3 views
7

Что происходит с сообщениями, напечатанными на stdout и stderr с помощью службы Windows? Я знаю, что они никуда не уходят, но они идут вниз/dev/null? Возможно ли, что приложение будет блокироваться во время такой записи?Windows Service output

+0

Вопрос не по теме, вы должны это знать. Опубликовать его в суперпользователях – Chelseawillrecover

+5

У вас есть служба Windows, которую вы написали, которая висит там, где вы подозреваете, что это может быть так? @Chelseawillrecover: речь идет о записи службы в stdout или stderr, которые являются условиями программирования. Пользователи не ссылаются на них таким образом, поэтому это явно (несколько) вопрос, связанный с программированием. –

+4

@Chelseawillrecover больше по теме здесь, это вопрос с точки зрения развития. –

ответ

9

Выход будет эффективно идти в dev/null и не будет вводить проблему блокировки. Теперь производительность с другой стороны будет влиять на, так как она требует ресурсов для ее записи.

В идеале вы сможете настроить, где заканчиваются журналы. Красиво реализована услуга позволит:

  • Writting бревен на один или более из файла, отлаживать выход, выход консоли (при запуске локальных экземпляров для тестирования/отладки), потенциально даже базу данных.
  • Возможность указать путь записи файлов журнала.
  • Настройте, как долго сохраняются журналы (служба должна иметь возможность очистить старые журналы, чтобы предотвратить утечку жесткого диска)
  • Укажите, как часто запускать новый файл (так что вы не входите в файлы журналов размером 18 гигабайт) ,
  • В идеале вы также хотите настроить, сколько данных нужно регистрировать (какой уровень детализации).
+0

Я не думаю, что есть гарантия, что выход всегда будет безобидно отброшен. Лучшая практика заключается в том, чтобы убедиться, что вы не используете стандартный вывод из службы или из приложения GUI. –