[PATCH] Human-readable timestamp logfiles

Jos Backus <[email protected]> Mon, 12 Nov 2012 17:47:45 -0800
Newsgroups gmane.comp.djb.syslog
Message-ID <CAETOPp09TNjj-hYwftJc8-4N=wc9yLuQUnJ=Wb7wEnFvxDek0A@mail.gmail.com>
--047d7b343934c44ccf04ce569ac9
Content-Type: multipart/alternative; boundary=047d7b343934c44ccb04ce569ac7

--047d7b343934c44ccb04ce569ac7
Content-Type: text/plain; charset=ISO-8859-1

Hi,

The attached patch (against daemontools-encore-1.05) adds a `h'/'`H' script
command. Notably, the `H' script command changes the log filename format
from TAI64N to the following format (using localtime(), like tai64nlocal):

+YYYYMMDDHHMMSS.NNNNNNNNN

Here's an example using the following multilog invocation:

multilog t H s100 n5 ./main

[root@centos6-dev main]# ls -l
total 20
-rwxr--r-- 1 root root 2145 Nov 12 09:04 +20121112090406.000979292.s
-rwxr--r-- 1 root root 2145 Nov 12 09:04 +20121112090446.000045734.s
-rwxr--r-- 1 root root 2145 Nov 12 09:05 +20121112090525.000113931.s
-rwxr--r-- 1 root root 2145 Nov 12 09:06 +20121112090604.000174738.s
-rw-r--r-- 1 root root 1320 Nov 12 09:06 current
-rw------- 1 root root    0 Nov 12 07:23 lock
-rw-r--r-- 1 root root    0 Nov 12 07:23 state
[root@centos6-dev main]# ls -l
total 20
-rwxr--r-- 1 root root 2145 Nov 12 09:04 +20121112090446.000045734.s
-rwxr--r-- 1 root root 2145 Nov 12 09:05 +20121112090525.000113931.s
-rwxr--r-- 1 root root 2145 Nov 12 09:06 +20121112090604.000174738.s
-rwxr--r-- 1 root root 2145 Nov 12 09:06 +20121112090643.000231651.s
-rw-r--r-- 1 root root   55 Nov 12 09:06 current
-rw------- 1 root root    0 Nov 12 07:23 lock
-rw-r--r-- 1 root root    0 Nov 12 07:23 state
[root@centos6-dev main]#

Comments welcome.

Jos
-- 
Jos Backus
jos at catnook.com

--047d7b343934c44ccb04ce569ac7
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

Hi,<br><br>The attached patch (against daemontools-encore-1.05) adds a `h&#=
39;/&#39;`H&#39; script command. Notably, the `H&#39; script command change=
s the log filename format from TAI64N to the following format (using localt=
ime(), like tai64nlocal):<br>
<br>+YYYYMMDDHHMMSS.NNNNNNNNN<br><br>Here&#39;s an example using the follow=
ing multilog invocation:<br>=A0<br>multilog t H s100 n5 ./main<br>=A0<br>[r=
oot@centos6-dev main]# ls -l<br>total 20<br>-rwxr--r-- 1 root root 2145 Nov=
 12 09:04 +20121112090406.000979292.s<br>
-rwxr--r-- 1 root root 2145 Nov 12 09:04 +20121112090446.000045734.s<br>-rw=
xr--r-- 1 root root 2145 Nov 12 09:05 +20121112090525.000113931.s<br>-rwxr-=
-r-- 1 root root 2145 Nov 12 09:06 +20121112090604.000174738.s<br>-rw-r--r-=
- 1 root root 1320 Nov 12 09:06 current<br>
-rw------- 1 root root=A0=A0=A0 0 Nov 12 07:23 lock<br>-rw-r--r-- 1 root ro=
ot=A0=A0=A0 0 Nov 12 07:23 state<br>[root@centos6-dev main]# ls -l<br>total=
 20<br>-rwxr--r-- 1 root root 2145 Nov 12 09:04 +20121112090446.000045734.s=
<br>-rwxr--r-- 1 root root 2145 Nov 12 09:05 +20121112090525.000113931.s<br=
>
-rwxr--r-- 1 root root 2145 Nov 12 09:06 +20121112090604.000174738.s<br>-rw=
xr--r-- 1 root root 2145 Nov 12 09:06 +20121112090643.000231651.s<br>-rw-r-=
-r-- 1 root root=A0=A0 55 Nov 12 09:06 current<br>-rw------- 1 root root=A0=
=A0=A0 0 Nov 12 07:23 lock<br>
-rw-r--r-- 1 root root=A0=A0=A0 0 Nov 12 07:23 state<br>[root@centos6-dev m=
ain]# <br>=A0<br>Comments welcome.<br><br>Jos<br>-- <br><div><font><font fa=
ce=3D"arial,helvetica,sans-serif">Jos Backus</font></font></div><div><font>=
<font face=3D"arial,helvetica,sans-serif">jos at <a href=3D"http://catnook.=
com" target=3D"_blank">catnook.com</a><br>
</font></font></div><br>

--047d7b343934c44ccb04ce569ac7--
--047d7b343934c44ccf04ce569ac9
Content-Type: application/octet-stream; name="dt-human_filenames.patch"
Content-Disposition: attachment; filename="dt-human_filenames.patch"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_h9gd1knh0

ZGlmZiAtLWdpdCBhL211bHRpbG9nLmMgYi9tdWx0aWxvZy5jCmluZGV4IDEyNTAyMDcuLjI4NjJi
MzUgMTAwNjQ0Ci0tLSBhL211bHRpbG9nLmMKKysrIGIvbXVsdGlsb2cuYwpAQCAtNzksNiArNzks
NyBAQCBzdHJ1Y3QgY3ljbG9nIHsKICAgdW5zaWduZWQgbG9uZyBieXRlczsKICAgdW5zaWduZWQg
bG9uZyBudW07CiAgIHVuc2lnbmVkIGxvbmcgc2l6ZTsKKyAgaW50IGh1bWFuX2ZpbGVuYW1lczsK
ICAgY29uc3QgY2hhciAqcHJvY2Vzc29yOwogICBjb25zdCBjaGFyICpjb2RlX2ZpbmlzaGVkOwog
ICBjb25zdCBjaGFyICpkaXI7CkBAIC0xMDAsNyArMTAxLDcgQEAgaW50IGZpbGVzZml0KHN0cnVj
dCBjeWNsb2cgKmQpCiAgIGRpciA9IG9wZW5kaXIoIi4iKTsKICAgaWYgKCFkaXIpIHJldHVybiAt
MTsKIAotICBmbi5zWzBdID0gJ0AnOworICBmbi5zWzBdID0gZC0+aHVtYW5fZmlsZW5hbWVzID8g
JysnIDogJ0AnOwogICBmbi5zWzFdID0gJ3onOwogICBmbi5zWzJdID0gMDsKIApAQCAtMTA5LDcg
KzExMCw3IEBAIGludCBmaWxlc2ZpdChzdHJ1Y3QgY3ljbG9nICpkKQogICAgIGVycm5vID0gMDsK
ICAgICB4ID0gcmVhZGRpcihkaXIpOwogICAgIGlmICgheCkgYnJlYWs7Ci0gICAgaWYgKHgtPmRf
bmFtZVswXSA9PSAnQCcpCisgICAgaWYgKHgtPmRfbmFtZVswXSA9PSAoZC0+aHVtYW5fZmlsZW5h
bWVzID8gJysnIDogJ0AnKSkKICAgICAgIGlmIChzdHJfbGVuKHgtPmRfbmFtZSkgPj0gMjUpIHsK
ICAgICAgICAgKytjb3VudDsKICAgICAgICAgaWYgKHN0cl9kaWZmKHgtPmRfbmFtZSxmbi5zKSA8
IDApIHsKQEAgLTEzMSw3ICsxMzIsNyBAQCBpbnQgZmlsZXNmaXQoc3RydWN0IGN5Y2xvZyAqZCkK
ICAgICBlcnJubyA9IDA7CiAgICAgeCA9IHJlYWRkaXIoZGlyKTsKICAgICBpZiAoIXgpIGJyZWFr
OwotICAgIGlmICh4LT5kX25hbWVbMF0gPT0gJ0AnKQorICAgIGlmICh4LT5kX25hbWVbMF0gPT0g
KGQtPmh1bWFuX2ZpbGVuYW1lcyA/ICcrJyA6ICdAJykpCiAgICAgICBpZiAoc3RyX2xlbih4LT5k
X25hbWUpID49IDI1KQogICAgICAgICBpZiAoc3RyX3N0YXJ0KHgtPmRfbmFtZSxmbi5zKSkgewog
CSAgdW5saW5rKHgtPmRfbmFtZSk7CkBAIC0xNTYsNyArMTU3LDkgQEAgdm9pZCBmaW5pc2goc3Ry
dWN0IGN5Y2xvZyAqZCxjb25zdCBjaGFyICpmaWxlLGNvbnN0IGNoYXIgKmNvZGUpCiAKICAgaWYg
KHN0LnN0X25saW5rID09IDEpCiAgICAgZm9yICg7OykgewotICAgICAgZm5sZW4gPSBmbXRfdGFp
NjRuc3RhbXAoZm4ucyk7CisgICAgICBmbmxlbiA9IGQtPmh1bWFuX2ZpbGVuYW1lcworICAgICAg
ICA/IGZtdF9odW1hbnN0YW1wKGZuLnMpCisgICAgICAgIDogZm10X3RhaTY0bnN0YW1wKGZuLnMp
OwogICAgICAgZm4uc1tmbmxlbisrXSA9ICcuJzsKICAgICAgIGRvIHsKIAlmbi5zW2ZubGVuKytd
ID0gKmNvZGU7CkBAIC0zODYsNiArMzg5LDcgQEAgdm9pZCBjX2luaXQoY2hhciAqKnNjcmlwdCkK
ICAgY29uc3QgY2hhciAqcHJvY2Vzc29yOwogICB1bnNpZ25lZCBsb25nIG51bTsKICAgdW5zaWdu
ZWQgbG9uZyBzaXplOworICBpbnQgaHVtYW5fZmlsZW5hbWVzOwogICBjb25zdCBjaGFyICpjb2Rl
X2ZpbmlzaGVkID0gInMiOwogCiAgIGNudW0gPSAwOwpAQCAtNDAwLDYgKzQwNCw3IEBAIHZvaWQg
Y19pbml0KGNoYXIgKipzY3JpcHQpCiAgIHByb2Nlc3NvciA9IDA7CiAgIG51bSA9IDEwOwogICBz
aXplID0gOTk5OTk7CisgIGh1bWFuX2ZpbGVuYW1lcyA9IDA7CiAKICAgZm9yIChpID0gMDtzY3Jp
cHRbaV07KytpKQogICAgIGlmIChzY3JpcHRbaV1bMF0gPT0gJ3MnKSB7CkBAIC00MTEsNiArNDE2
LDEyIEBAIHZvaWQgY19pbml0KGNoYXIgKipzY3JpcHQpCiAgICAgICBzY2FuX3Vsb25nKHNjcmlw
dFtpXSArIDEsJm51bSk7CiAgICAgICBpZiAobnVtIDwgMikgbnVtID0gMjsKICAgICB9CisgICAg
ZWxzZSBpZiAoc2NyaXB0W2ldWzBdID09ICdoJykgeworICAgICAgaHVtYW5fZmlsZW5hbWVzID0g
MDsKKyAgICB9CisgICAgZWxzZSBpZiAoc2NyaXB0W2ldWzBdID09ICdIJykgeworICAgICAgaHVt
YW5fZmlsZW5hbWVzID0gMTsKKyAgICB9CiAgICAgZWxzZSBpZiAoc2NyaXB0W2ldWzBdID09ICch
JykgewogICAgICAgcHJvY2Vzc29yID0gc2NyaXB0W2ldICsgMTsKICAgICB9CkBAIC00MjIsNiAr
NDMzLDcgQEAgdm9pZCBjX2luaXQoY2hhciAqKnNjcmlwdCkKICAgICBlbHNlIGlmICgoc2NyaXB0
W2ldWzBdID09ICcuJykgfHwgKHNjcmlwdFtpXVswXSA9PSAnLycpKSB7CiAgICAgICBkLT5udW0g
PSBudW07CiAgICAgICBkLT5zaXplID0gc2l6ZTsKKyAgICAgIGQtPmh1bWFuX2ZpbGVuYW1lcyA9
IGh1bWFuX2ZpbGVuYW1lczsKICAgICAgIGQtPnByb2Nlc3NvciA9IHByb2Nlc3NvcjsKICAgICAg
IGQtPmNvZGVfZmluaXNoZWQgPSBjb2RlX2ZpbmlzaGVkOwogICAgICAgZC0+ZGlyID0gc2NyaXB0
W2ldOwpkaWZmIC0tZ2l0IGEvdGltZXN0YW1wLmMgYi90aW1lc3RhbXAuYwppbmRleCA3MDE4YTJi
Li44ZWE5Y2IwIDEwMDY0NAotLS0gYS90aW1lc3RhbXAuYworKysgYi90aW1lc3RhbXAuYwpAQCAt
MzMsMyArMzMsNDQgQEAgaW50IGZtdF9hY2N1c3RhbXAoY2hhciBzW1RJTUVTVEFNUF0pCiAgIGxl
biArPSBmbXRfdWludDAocytsZW4sbm93Lm5hbm8gLyAxMDAwLDYpOwogICByZXR1cm4gbGVuOwog
fQorCisjaW5jbHVkZSA8dGltZS5oPgorCitpbnQgZm10X2h1bWFuc3RhbXAoY2hhciBzW1RJTUVT
VEFNUF0pCit7CisgIHN0cnVjdCB0YWlhIG5vdzsKKyAgaW50IGxlbjsKKyAgdGltZV90IHNlY3M7
CisgIHN0cnVjdCB0bSAqdDsKKworICB0YWlhX25vdygmbm93KTsKKworICBzZWNzID0gKHVuc2ln
bmVkIGxvbmcpdGFpX3RvdW5peCgmbm93LnNlYyk7CisgIHQgPSBsb2NhbHRpbWUoJnNlY3MpOwor
CisgIGNoYXIgKnMxID0gczsKKyAgczFbMF0gPSAnKyc7ICsrczE7CisgIGxlbiA9IGZtdF91bG9u
ZyhzMSwxOTAwICsgdC0+dG1feWVhcik7CisgIC8vIHMxW2xlbisrXSA9ICctJzsKKyAgczEgKz0g
bGVuOworICBsZW4gPSBmbXRfdWludDAoczEsMSArIHQtPnRtX21vbiwyKTsKKyAgLy8gczFbbGVu
KytdID0gJy0nOworICBzMSArPSBsZW47CisgIGxlbiA9IGZtdF91aW50MChzMSx0LT50bV9tZGF5
LDIpOworICAvLyBzMVtsZW4rK10gPSAnICc7CisgIHMxICs9IGxlbjsKKyAgbGVuID0gZm10X3Vp
bnQwKHMxLHQtPnRtX2hvdXIsMik7CisgIC8vIHMxW2xlbisrXSA9ICc6JzsKKyAgczEgKz0gbGVu
OworICBsZW4gPSBmbXRfdWludDAoczEsdC0+dG1fbWluLDIpOworICAvLyBzMVtsZW4rK10gPSAn
Oic7CisgIHMxICs9IGxlbjsKKyAgbGVuID0gZm10X3VpbnQwKHMxLHQtPnRtX3NlYywyKTsKKyAg
czFbbGVuKytdID0gJy4nOworICBzMSArPSBsZW47CisgIGxlbiA9IGZtdF91aW50MChzMSxub3cu
bmFubyAvIDEwMDAsOSk7CisgIHMxICs9IGxlbjsKKworICBsZW4gPSBzMSAtIHM7CisgIHJldHVy
biBsZW47Cit9CmRpZmYgLS1naXQgYS90aW1lc3RhbXAuaCBiL3RpbWVzdGFtcC5oCmluZGV4IGQx
N2QxOTIuLjcyOGY1MWYgMTAwNjQ0Ci0tLSBhL3RpbWVzdGFtcC5oCisrKyBiL3RpbWVzdGFtcC5o
CkBAIC01LDUgKzUsNiBAQAogCiBleHRlcm4gaW50IGZtdF90YWk2NG5zdGFtcChjaGFyICopOwog
ZXh0ZXJuIGludCBmbXRfYWNjdXN0YW1wKGNoYXIgKik7CitleHRlcm4gaW50IGZtdF9odW1hbnN0
YW1wKGNoYXIgKik7CiAKICNlbmRpZgo=
--047d7b343934c44ccf04ce569ac9--