From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by sympa.inria.fr (Postfix) with ESMTPS id DA7C67FD90 for ; Mon, 9 Jan 2017 19:52:50 +0100 (CET) Authentication-Results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=chetsky@gmail.com; spf=Pass smtp.mailfrom=chetsky@gmail.com; spf=None smtp.helo=postmaster@mail-pf0-f178.google.com Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of chetsky@gmail.com) identity=pra; client-ip=209.85.192.178; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="chetsky@gmail.com"; x-sender="chetsky@gmail.com"; x-conformance=sidf_compatible Received-SPF: Pass (mail3-smtp-sop.national.inria.fr: domain of chetsky@gmail.com designates 209.85.192.178 as permitted sender) identity=mailfrom; client-ip=209.85.192.178; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="chetsky@gmail.com"; x-sender="chetsky@gmail.com"; x-conformance=sidf_compatible; x-record-type="v=spf1" Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of postmaster@mail-pf0-f178.google.com) identity=helo; client-ip=209.85.192.178; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="chetsky@gmail.com"; x-sender="postmaster@mail-pf0-f178.google.com"; x-conformance=sidf_compatible IronPort-PHdr: =?us-ascii?q?9a23=3AkhqZ2xc+RZwPsjcd/pTmBqRBlGMj4u6mDksu8pMi?= =?us-ascii?q?zoh2WeGdxcu/Zx7h7PlgxGXEQZ/co6odzbGH7+a6BSdZuMbJmUtBWaQEbwUCh8?= =?us-ascii?q?QSkl5oK+++Imq/EsTXaTcnFt9JTl5v8iLzG0FUHMHjew+a+SXqvnYdFRrlKAV6?= =?us-ascii?q?OPn+FJLMgMSrzeCy/IDYbxlViDanb75/KBq7oR/PusQZjoduN7s9xxjUqXZUZu?= =?us-ascii?q?pawn9lK0iOlBjm/Mew+5Bj8yVUu/0/8sNLTLv3caclQ7FGFToqK2866tHluhnF?= =?us-ascii?q?VguP+2ATUn4KnRpSAgjK9w/1U5HsuSbnrOV92S2aPcrrTbAoXDmp8qlmRAP0hC?= =?us-ascii?q?oBKjU09nzchM5tg6JBuB+vpwJxzZPabo+WOvVxcazTcs8BSGpdQ8hcTTBNDp+9?= =?us-ascii?q?YocRCecKIOZWr5P6p1sLtRazGwmsC/3zyjRVgXH2wLc60/ghEQDGwQctGM4BsH?= =?us-ascii?q?TKo9XpL6cSUuC0wbLHzTXGdfxW2DP95JLUfRAmpPGBRLR9etfSx0k3Dw7JkEmc?= =?us-ascii?q?pIj/Mz6W1ukBqXWX4u5+We61lmIqqQJ8riCty8otkIXFmJ8Zx1Pe+Sln3Io4Jc?= =?us-ascii?q?e0RU17bNOiDZBerTuVN5FsTcMnW2xouDg1yrkBuZOjeSgF0pUnxxrGZ/yffYiE?= =?us-ascii?q?/gvvVOiMLTp6h39pYr2/hxG18Uivzu3zSNO430pNripAitXMt3YN2ALP6sWfVP?= =?us-ascii?q?dx4kOs1SyM2g3T8O1IPEQ5mbTBJ5I8wLM9lYIfsUHZES/3nEX2grWWdkIh+uWw?= =?us-ascii?q?9+vnYqvppoOHN493igDzKasumsmlDuQ5NggCRXSU+eO51LH75032XK1KjuEqkq?= =?us-ascii?q?neqJ3VOd4Upqu9AwNM1oYj6g2/Dyu93dQDnXgHKUpFdwidg4joPVHOOvH4Au2l?= =?us-ascii?q?j1Siijc4j8zBa/fqC5DJa3zCi6vJfLBn6kcaxhB70MtS/YkeQuUKKff3H0vwr8?= =?us-ascii?q?DwDxkjMgXyzfyxW/tn0YZLcmKCHue8LbnOsU7AsukvLvWXZ549tzP0Kvxj7Pnr?= =?us-ascii?q?2yxq0WQBdLWkiMNEIEuzGe5rdh2U?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0DLAwDy2nNYh7LAVdFdg2oBAQEBAYIKh?= =?us-ascii?q?S6JG5ojg1SKbogLQhEBAQEBAQEBAQEBARIBAQEIDQkKHTCCMxiCXgYBGx4DEiY?= =?us-ascii?q?VHwETEQEFASKIZwEDGKAXgz8/jgYFARyDCQWDYgoZJw1UggIqAgYJAQiVQAWQE?= =?us-ascii?q?YsLm2WGRJEPMoEUNYE0EgcVFTeEQYILUohmAQEB?= X-IPAS-Result: =?us-ascii?q?A0DLAwDy2nNYh7LAVdFdg2oBAQEBAYIKhS6JG5ojg1SKbog?= =?us-ascii?q?LQhEBAQEBAQEBAQEBARIBAQEIDQkKHTCCMxiCXgYBGx4DEiYVHwETEQEFASKIZ?= =?us-ascii?q?wEDGKAXgz8/jgYFARyDCQWDYgoZJw1UggIqAgYJAQiVQAWQEYsLm2WGRJEPMoE?= =?us-ascii?q?UNYE0EgcVFTeEQYILUohmAQEB?= X-IronPort-AV: E=Sophos;i="5.33,340,1477954800"; d="scan'208";a="208531759" Received: from mail-pf0-f178.google.com ([209.85.192.178]) by mail3-smtp-sop.national.inria.fr with ESMTP/TLS/AES128-GCM-SHA256; 09 Jan 2017 19:52:49 +0100 Received: by mail-pf0-f178.google.com with SMTP id y143so11840583pfb.0 for ; Mon, 09 Jan 2017 10:52:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:user-agent:mime-version :content-transfer-encoding; bh=vosiNK42mOicVAWpHL/9dG7lFYrWgG+v1b2zxYFYedk=; b=SBIgy8g7MNYp363FHXbeZr5SAJWrIEahsJJi0G5qyR2qXM7SPc9AmFuQKJ5RMfkrQP sJ8M03CBwQDs8fbqjVQJnRfyVHkKIVztMqDbF5k+12MCFU0KGl2c3PwuPvu11TrQeF9a GoqTv49VNM5KWlQyqsxLAC5OdVhqfPBvBtHD6TvTLtvAuHqxS5lUJd5QtSLo75N/+sOI 1bG4dFHI1hAVYDqaJ1G0ajaIPE5HVHOfvasiQs57wETbbXuU7ddS50drtf6WZl8vq9Pb w5bhPvoZo0+dZtn1ESAc0ZBfhGUAuOsY5TPtfgOoBUDncsi+p+Fbin1J2vG9/xTR8WrT gTYQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:user-agent :mime-version:content-transfer-encoding; bh=vosiNK42mOicVAWpHL/9dG7lFYrWgG+v1b2zxYFYedk=; b=LIFl1JpJPlozLq/+mXU8nNgbjDNQo1Ve51eR699YaxLiBnbgMbLUEgzBUfeAo5Psr4 tH3Vq6aEX1cXulnjDY0pNCqJB/x1aPxV4l4am7iGkiE2n+gFET/9QLiCBtKwTI9I6N0e 3A5cpyYL3vN1oSUgn/e58AO1ECc5coDNxS7BPrT7Ew6GeEpMmFi6J58a6miaf2nF8Wrr 3fKKAUWs3KOpnT1wW2nSF0K6E74Qg2khtIJ6FQdlvVCV+OabQKo0mL4HSzF1ca7SOcEZ vl/sNkTyZjEJ2NrDrSY7KVSIRs6/2VjxGSn7RSZAdONkU4EhaV1xqhMguGq1qRDrE2vs jz2A== X-Gm-Message-State: AIkVDXJQKautlUsJt1QV8y/kzahdR9T71jeYD6snTZnbCHlGcvs9E5nb/HWBmOFPQ8ixhA== X-Received: by 10.84.217.133 with SMTP id p5mr25000428pli.164.1483987967862; Mon, 09 Jan 2017 10:52:47 -0800 (PST) Received: from twitter.localnet (76-218-205-85.lightspeed.sntcca.sbcglobal.net. [76.218.205.85]) by smtp.gmail.com with ESMTPSA id q5sm106439417pgf.45.2017.01.09.10.52.46 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 09 Jan 2017 10:52:46 -0800 (PST) From: Chet Murthy To: "caml-list@inria.fr users" Date: Mon, 09 Jan 2017 10:52:45 -0800 Message-ID: <2383491.giY4FN1y6Q@twitter> User-Agent: KMail/5.1.3 (Linux/4.4.0-57-generic; KDE/5.18.0; x86_64; ; ) MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-Validation-by: chetsky@gmail.com Subject: [Caml-list] A question about Ocaml logging All, I hope this is the right place to ask this question. I've been writing a nontrivial distributed system (well, a number of them over the last few years) and have had need of a robust and flexible logging framework. Specifically, I've been using "bolt" and its descendant, "volt", which provide camlp4 syntax extensions. These extensions make the syntax of the logging statements significantly less verbose, and that in itself ia a valuable thing. With the arrival of ppx rewriters, I realize that the camlp4/camlp5 method of adding syntax to ocaml is deprecated. So I wonder: is there some really good logging toolkit out there, that I've overlooked. I'm aware of a number of different packages, but only bolt/volt have syntax extensions, and it's my belief that they're essential to making effortless pervasive log-line instrumentation. But perhaps I just haven't looked hard enough .... So .... before I go write my own, I figured I'd ask the list if there were such a thing. For concreteness, the basic thing I'm looking for, is a syntax extension that somewhat resembles LOG "%s" appid LEVEL DEBUG ; which expands out to code something like begin if log_enabled DEBUG then log (Printf.sprintf "%s" appid) end I hate writing "slight variations on somebody else's good idea", so would much prefer to "improve" somebody else's library/tool, than come up with my own. Thanks in advance, --chet--