From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIM_INVALID,DKIM_SIGNED, FREEMAIL_FROM,MAILING_LIST_MULTI autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 4743 invoked from network); 13 Jun 2020 10:59:47 -0000 Received: from alyss.skarnet.org (95.142.172.232) by inbox.vuxu.org with ESMTPUTF8; 13 Jun 2020 10:59:47 -0000 Received: (qmail 26048 invoked by uid 89); 13 Jun 2020 11:00:13 -0000 Mailing-List: contact supervision-help@list.skarnet.org; run by ezmlm Sender: Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Received: (qmail 26041 invoked from network); 13 Jun 2020 11:00:13 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1592045983; bh=t8b+T1YNnq090IlCo85Q02j57y+oVKLKvwtBYCWcNRY=; h=X-UI-Sender-Class:Date:From:To:Cc:Subject:References:In-Reply-To; b=SvuCuMXi4MOLQnKNpF2k4dQjPK/byoDZUD/OHcprWBqxFZe35Ea5do/pvj7ulpwdu +6yso4SFuERFY5rXtrW20hifPQsAFVhW5SsDCl5efHtOUgYwB+cW6TaSwEBnF+c5jd vFrMP3FAs5H9/AluWZpfmYCTPBdo1hPXxTzKq75k= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Date: Sat, 13 Jun 2020 12:59:42 +0200 From: Jan Braun To: Carl =?iso-8859-1?Q?Winb=E4ck?= Cc: supervision@list.skarnet.org Subject: Re: Logging in a web server context Message-ID: <20200613105942.GA21613@klumpi.ignorelist.com> Mail-Followup-To: Carl =?iso-8859-1?Q?Winb=E4ck?= , supervision@list.skarnet.org References: MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="XsQoSWH+UP9D9v3l" Content-Disposition: inline In-Reply-To: X-GPG-Fingerprint: 1736 D50F 170B 70A6 9223 BC15 295E 703E 6D1D 2FCF X-GPG-Encryption-Welcome: always X-Provags-ID: V03:K1:Nru8n3dKF96UVmQ58MmcPwYiR5gwIuPWoRvdi8d/kzDb4+4oE8q 2G9oMchGQqnDhN5pzsj0OlGcXxBfN19Upjd4XdE8pUAV6Yeo57FCfR4mjtjY4WxaASAT15Z UBIUtTTJDYQRGMeIREOIpT6zWMOh/2daAVZaGTNrb50QxYIlHQu2THEVtCyZvzCltN9gpTP 7RnA9eQePeU4Awrt7r/6g== X-UI-Out-Filterresults: notjunk:1;V03:K0:Obovtjhsluc=:ARBG/C3gkqrUK67JhwnFvC oAH8wiesBzGXOz6wTffjIWT3ZaxZ2IF2CbW8LHJ3svBkh0oko/ad7/Iu/gXFVXpIZ88dqBgfp W1pIQqYf/DhYvONgQSxTPUow27rzjbJGU3NoC7UcmNxqCxbvROYScel8aSBd7/AZEg9gpIEe0 +BsIyNwvZVS0q9IZ2V8AquIHu5oNDRi+sSWXRuqSYdppL1EOsknGC3WJ0Z7kgeshaCZ4zoJK+ jICjI4/SJ7pAvxPEqfQQHDULSVYjOOkUGp0md2XesfbkHD8gNe1khBYNeG6gxvgAD0Ku3X9Hr Dho6+cKBW+tgGZHpJZEg7/ciu+1fbl7h+uI/tEtyYkSuW7Ee93jDABuO0IoM6ECXzPXExP80U QsMiZaWngbsQlAu89fVkEaFp/PkofR1i2mVq/6YJGMs1ZjRJAQ4swxn68E2ugG4wj6Okrgfwz V1m816Gi/iNFGqQhBczCyhUpQL+yDyQkWzlWPR3bHuPnE/e3qx2WtvW4iWI6DrCXwdYuhPyu2 Ka45sFRvi7+LXV3LKVXJwS9sgBbnbe0roFobwB8xJ/xSP4G6rVxxQ9vBpxFBYkzn5LgCFBXFt Qj8nTtmsOJMY1+zdcW563eSGdMlMLbb2+ogMMujFqlKI32VQ50P72pWwtk2hHWBtY2TptFevl qswW4Fd8KxhyEE6RJymIP0BaO/WAgBdiKBdMGcCnmY/zNjy3MdNMvNdh8fzGlINcjpmYTnRoI f6Nkx4cQoDB45hS3dpEbaKDQATSmwn1aFdp7A0DNSIJLvKeiojmz+WCP41SB41Bq2SklVTy1I nshFJlxlhEsPyll2bYq2mSquoAxIcC1LAVln/90DCdgX9vGxUrzt5cJA1ZREan5+yU8hixrFT yjqaHAf0z4CmSX9rv6X9MmdqO/SBIBOlgjK7O1wJeoiN7jlXT1xQFaX7ZyIkILNeOD0P2Lbq5 NCuEp6YlDqnGZlq57X61enLCTDPua/kxQQC1Av1WNjgxvLEjli3ngXpfeHiMR3mXWMED/g7j8 EjRjsX9AB1XUfJWNkveUvIe5pzFY8dXVfp4I9khCv1unSeaif9tuw5wx7k76g2ofMP3SALhiG xBkzn1t73LDgz8U1RZHgXQ0OWI1+iafWRYYhi0O8mExjZRQiBPjBxGMPl2I/Xlrg39/amTWRG HRkgSCfEKkMEHAJrh3YENVbVSWK+EI4/HvHiwBzd9NBJK5mVnIetFDzTbUeTlaCQXF/H8= --XsQoSWH+UP9D9v3l Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Hey, Carl Winb=C3=A4ck schrob: > Is it possible when using s6-svscan/s6-supervise to somehow arrange so > that a daemon=E2=80=99s stdout is sent to one logdir and stderr to another > logdir? 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: $ find -type f | xargs head -n 99 =3D=3D> ./inner/log/run <=3D=3D #!/bin/sh mkdir -p stdout svlogd -t stdout =3D=3D> ./inner/run <=3D=3D #!/bin/sh echo stderr >&2 echo stdout sleep 10 =3D=3D> ./log/run <=3D=3D #!/bin/sh mkdir -p stderr svlogd -t stderr =3D=3D> ./run <=3D=3D #!/bin/sh exec runsv inner 2>&1 $ timeout 11 runsv . $ find -name current | xargs head =3D=3D> ./inner/log/stdout/current <=3D=3D @400000005ee4a23f2591745c stdout @400000005ee4a24925b79614 stdout =3D=3D> ./log/stderr/current <=3D=3D @400000005ee4a23f257ae304 stderr @400000005ee4a24925b76f04 stderr $ Translation to s6 is left as an exercise to the reader. > One tricky aspect of logging that is specific to web servers is that > they emit two different categories of messages: >=20 > a) Errors and warnings >=20 > b) Info about page requests[2] 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 =3D=3D> stderr/current <=3D=3D @400000005ee4acd00efdfbe9 stderr =3D=3D> stdout/current <=3D=3D @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. HTH & cheers, Jan --XsQoSWH+UP9D9v3l Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEFzbVDxcLcKaSI7wVKV5wPm0dL88FAl7ksZIACgkQKV5wPm0d L8/6RQ/+JJ5jH8wLk6N9Ca9Xp0sKocDF4O66N0muucMSO7D9E+CiyxMaH6Ayanlp EcLFbgax9UyUfNUSiSlz7O7NZrc8sarWi64a0pxW66tq1o7CbxXQTu6o8c8bmIst KEAz1rRMaYCAdv5yVhpmT1cErBrDtgT0gPLXYxPTkn1lcONpdYGYW9te2ejCtAGS YySOGXk8kMgdvNlGkULorW7mwqxlHyU4Qwwcpu2chwuUrsKHx1Khq3ssBUC5zXYt wZ4kJmh/ySCb6zb/IjqwAXcARc47lhnU0p9O4ZXEs5njsuMK0pPLG+YnXBCc6bbn 9cgPAo5RKqFeVVDe2jhoeuO2k/VNZe8uhY9qvNEQpwqbyrDVvWChBXZY3hbRMdac 3BULfA16w8k5KMDvWdeANisq2fbQ5jGRtcm1ULS79Yt0jrDzZoKQ/iv3TRpzLPk1 gsyVVWmYrnjbrKMbuMNVhUM2ZF28d9ZQcUE2rbIUqVexMuA+3mNWkk4EbRqTl0wU 1rprLMYkhnd1pC765VgbxKzF5mdTWJVteBNNvEoObtaSnI6AdEr210dPbWQpOmZK LnDzURTafyPRYpR0/fXcgUIT48XID7rh6h1npvkylcHMOsBceZlLKD6VlI/aAE+r PSGYxGsOQ05XqnaDFp3fAWa7pFcziDYfFiyXA5UZ0n8sSahfLHE= =2sjq -----END PGP SIGNATURE----- --XsQoSWH+UP9D9v3l--