package plebeia
Functional storage using Merkle Patricia tree
Install
Dune Dependency
Authors
Maintainers
Sources
plebeia-2.0.0.tar.gz
md5=f528f42d3e72d400265eb6bc51901fca
sha512=6cf070b2f1ea2e570a106b231a7e8e40c64c91c5a7abeddf072a5c413e74d5d9dd9b7df674cca559ddb33cabc9c0ec0b3a001306397d11b62888aac4cca9fd7e
doc/src/plebeia/log.ml.html
Source file log.ml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
(*****************************************************************************) (* *) (* Open Source License *) (* Copyright (c) 2019,2020 DaiLambda, Inc. <contact@dailambda.jp> *) (* *) (* Permission is hereby granted, free of charge, to any person obtaining a *) (* copy of this software and associated documentation files (the "Software"),*) (* to deal in the Software without restriction, including without limitation *) (* the rights to use, copy, modify, merge, publish, distribute, sublicense, *) (* and/or sell copies of the Software, and to permit persons to whom the *) (* Software is furnished to do so, subject to the following conditions: *) (* *) (* The above copyright notice and this permission notice shall be included *) (* in all copies or substantial portions of the Software. *) (* *) (* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR*) (* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, *) (* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL *) (* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER*) (* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING *) (* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER *) (* DEALINGS IN THE SOFTWARE. *) (* *) (*****************************************************************************) type level = | Debug | Info | Notice | Warning | Error | Fatal type t = { f : 'a . (level -> ('a, Format.formatter, unit, unit) format4 -> 'a) } let threshold = ref Notice let default = let default level fmt = Format.kasprintf (fun s -> if level >= !threshold then prerr_endline s) fmt in { f= default } let r = ref default let set f = r := f let log level fmt = !r.f level fmt let lwt_log level fmt = Format.kasprintf (fun s -> log level "%s" s; Lwt.return_unit) fmt let debug fmt = log Debug fmt let info fmt = log Info fmt let notice fmt = log Notice fmt let warning fmt = log Warning fmt let error fmt = log Error fmt let fatal fmt = log Fatal fmt let lwt_debug fmt = lwt_log Debug fmt let lwt_info fmt = lwt_log Info fmt let lwt_notice fmt = lwt_log Notice fmt let lwt_warning fmt = lwt_log Warning fmt let lwt_error fmt = lwt_log Error fmt let lwt_fatal fmt = lwt_log Fatal fmt
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>