Re: changing cf CLI trace stream from stdout to stderr

Daniel Mikusa

Sorry, I didn't explain that very well. Let me try again. In the simplest
case where you're watch it from a terminal / console, yes it would be the

A few cases where this might be an issue:

- bosh errand or CI system is running cf on your behalf and capturing the
output. Display is often STDOUT / STDERR separate.
- when troubleshooting with a user, it's easy to say run `CF_TRACE=true cf
... > full_output.txt`. I suppose this could be done with `CF_TRACE=true
cf ... &> full_output.txt`, but I'm not sure what I'd do on a Windows
system (without bash).

Ultimately I just want something in the cli to get normal output mixed with
trace output in the order things happen to build a timeline for
troubleshooting purposes. It has always annoyed me a bit that
`CF_TRACE=some-file.txt cf ...` doesn't do this (last time I looked, it
just logs trace info, not cli output), but with the current behavior of the
cli it's easy enough to workaround (redirect all to file). If the behavior
changes, it wouldn't be the end of the world, but it would be slightly
harder / more annoying to build the sequence of commands when

Hope that explains my concern a bit better.



On Sun, Oct 30, 2016 at 4:37 AM, Koper, Dies <diesk(a)>

Hi Dan,

How would that experience be different if trace went to stderr? Wouldn’t
the stream of HTTP messages display inline with the cli output in the same


Dies Koper
Cloud Foundry Product Manager - CLI

*From:* Daniel Mikusa [mailto:dmikusa(a)]
*Sent:* Wednesday, October 26, 2016 11:06 PM
*To:* Discussions about Cloud Foundry projects and the system overall.
*Subject:* [cf-dev] Re: Re: Re: changing cf CLI trace stream from stdout
to stderr

Just my $0.02, but I like the current behavior. I find it helpful for
troubleshooting purposes to be able to get the stream of HTTP messages
inline with the output from the cli. It helps to very quickly and easily
establish a timeline and isolate a particular HTTP request / response as
being a problem, like when a response is slow. Just run `CF_TRACE=true cf
...` and watch to see where it pauses.

I like the suggestion in the GH issue.

Perhaps adding the option of specifying CF_TRACE=stderr (and stdout for
consistency, which would be equal to using 1) could be a way to do it.

IMHO, if you did this then the default option would matter a lot less.
I'd still prefer to keep the default behavior to STDOUT, but that's mostly
me just being selfish. As long as I have a way to invoke that stdout
behavior when I need it, I could live with the default changing.


On Tue, Oct 25, 2016 at 8:10 PM, Koper, Dies <diesk(a)>

Hi Hector,

I have not been able to find a way to make that work on Windows.

CF_TRACE=/dev/stderr just creates a “dev” directory in the root of the
drive you run cf from with a file called “stderr”.


Dies Koper
Cloud Foundry Product Manager - CLI

*From:* Hector Rivas Gandara [mailto:hector.rivas.gandara@]
*Sent:* Tuesday, October 25, 2016 10:27 PM
*To:* Discussions about Cloud Foundry projects and the system overall.
*Subject:* [cf-dev] Re: changing cf CLI trace stream from stdout to stderr


Have you tried sending CF_TRACE to /dev/stderr? Like this

CF_TRACE=/dev/stderr cf apps | less

I think it is system specific, but it should work on most of them.

On 25 October 2016 at 04:44, Koper, Dies <diesk(a)>

Hi friends,

Currently, the cf CLI trace when enabled (“CF_TRACE=true”, `cf config
–trace true` or with the `-v` option) is directed to stdout.

Looking at other commands, e.g. `curl -v`, it’s common to send such
information to stderr.

This recently came up in the following issue.

I’d like to know whether anyone would be massively inconvenienced if we
fixed this to make cf CLI trace output go to stderr (e.g. because you have
many scripts expecting trace to be streamed to stdout, or not expecting
anything but errors and warnings to be streamed to stderr)?

Note that trace configured to output to a file would not be affected.


Dies Koper
Cloud Foundry Product Manager - CLI



Hector Rivas | GDS / Multi-Cloud PaaS

Join { to automatically receive all group messages.