1

У меня есть программа, написанная на Python, которая пишет в stderr и stdout . Я вызываю его, используя pythonw , это означает, что он работает без командной строки.

Сохраняет ли Windows эти файлы журнала и если да, то где?

(Я знаю, что могу перенаправить их в python или используя командную строку, но сохраняются ли они автоматически?)

1 ответ1

5

Если ваша программа вызывается из командной строки, stderr и stdout по умолчанию направляются на консоль.

Если вы хотите сохранить их в файл, вы должны перенаправить вывод.

STDOUT:

c:\path\program.exe >c:\temp\stdout.log

STDERR:

c:\path\program.exe 2>c:\temp\stderr.log

STDOUT и STDERR в разных файлах

c:\path\program.exe >c:\temp\stdout.log 2>c:\temp\stderr.log

STDOUT и STDERR в одном файле

c:\path\program.exe >c:\temp\stdout.log 2>&1   

Если вы хотите добавить к существующему файлу журнала вместо перезаписи содержимого, используйте «>>» вместо «>». Если файл журнала не существует, он будет создан в обоих случаях.

Изменить: Вы отредактировали свой вопрос с более подробной информацией после моего первоначального ответа. Таким образом, новый ответ будет: нет, они не сохраняются автоматически. Вы должны явно перенаправить выходные потоки в файл, если хотите.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .