Is it intended to log errors to stdout while calling the option in the code stderr?

As far as I know, errors and logging outputs are typically sent to stderr instead of stdout and stdout is "reserved" for program output (golang stdlib "log" package sends log line to stderr as well).

At https://github.com/elastic/libbeat/blob/b360f18e93b6d96d1c1b6c5f37302bb39790197b/logp/log.go#L143, the option is stderr but the output is stdout. Is that intentional?

Nice one. Can you add an issue to github?

I created a ticket in GitHub with the requested functionality: https://github.com/elastic/libbeat/issues/219.