Re: Logging in a web server context
On Sat, 13 Jun 2020 at 12:59, Jan Braun <janbraun_at_gmx.de> wrote:
> I'm not completely sure about s6, but runsv (from runit) hands only the
> stdout of the ./run script to the logger, and passes the stderr out of
> it's own stderr. This allows you to nest two runsv instances, one for
> each output channel:
>
> [...]
>
> Translation to s6 is left as an exercise to the reader.
Very interesting! I will study this example in depth in order to see
if it could be applied to s6.
If anyone has done this in s6, I would be interested to hear how you
achieved it.
> You could also run the webserver with stderr redirected to stdout, and
> let s6-log/svlogd filter the messages into one of two logdirs:
>
> $ printf 'stdout\nstderr\n' | s6-log -- '-.*err' t ./stdout f t ./stderr
> $ head std*/current
> ==> stderr/current <==
> _at_400000005ee4acd00efdfbe9 stderr
>
> ==> stdout/current <==
> _at_400000005ee4acd00efd6f5e stdout
>
> However, that's a brittle solution, because it relies on you creating
> correctly-matching filter rules. Depending on the webserver's output, it
> might still be feasible, but I recommend the other approach.
I agree that this method is not rock-solid since it relies on text
parsing. But for my purposes it would probably be sufficient.
Then I have at least one solution that should be feasible and possibly
both of them are.
Thank you Jan!
Received on Sat Jun 13 2020 - 11:17:15 UTC
This archive was generated by hypermail 2.3.0
: Sun May 09 2021 - 19:44:19 UTC