Skip to content
This repository has been archived by the owner on Oct 23, 2023. It is now read-only.

Only print to stdout if stdout is connected to a tty(-like) device #941

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

frietsch-ot
Copy link

We are running the raven python client inside of a (yes, very old school, I agree) CGI web application and would like to use a threaded transport, so that normal operation can continue while raven is working.

However, in rare but not rare enough cases, the CGI process is about to terminate before raven has sent all messages, and then, some output "Sentry is attempting to send... Hit Ctrl+C to abort" appears on stdout, which - lame old CGI - is the web page sent to the client. In worst case, the output is seen as (broken) HTTP headers, leading to interesting HTTP status codes from the web server.

To avoid the stdout output, as discussed in #932, I just added an isatty() check.

So: The overall diff is very small in fact, it's just that I had to change a bit of indent.

else:
print("Press Ctrl-C to quit")

if sys.stdout.isatty():
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should test against stdin, not stdout.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hm... as we are printing to stdout, I'd propose to - if you want to test for stdin - to test for both. At least, I also don't want to see those messages when redirecting a console application to a file, maybe by nohup or something.

import sys
sys.stdout.isatty()
True

on my machine.

@frietsch-ot
Copy link
Author

How do you think about that "if sys.stdin.isatty() and sys.stdout.isatty()" in my last commit?

@Maelcom
Copy link

Maelcom commented Mar 19, 2017

Would be great to see this merged anytime soon.

@katyukha
Copy link

Hi all,

We have similar issue, but i think it would be better to print these messages to STDERR instead of STDOUT.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants