package devkit
Development kit - general purpose library
Install
Dune Dependency
Authors
Maintainers
Sources
devkit-1.20240429.tbz
sha256=222f8ac131b1d970dab7eeb2714bfd6b9338b88b1082e6e01c136ae19e7eaef4
sha512=c9e6d93e3d21e5530c0f4d5baca51bf1f0a5d19248f8af7678d0665bb5cdf295d7aaaaa3e50eb2e44b8720e55097cc675af4dc8ec45acf9da39feb3eae1405d5
doc/src/devkit.core/logger.ml.html
Source file logger.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 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
open Printf type level = [`Debug | `Info | `Warn | `Error] type facil = { name : string; mutable show : int; } let int_level = function | `Debug -> 0 | `Info -> 1 | `Warn -> 2 | `Error -> 3 let set_filter facil level = facil.show <- int_level level let get_level facil = match facil.show with | 0 -> `Debug | 1 -> `Info | 2 -> `Warn | _ -> `Error (* ! *) let allowed facil level = int_level level >= facil.show let string_level = function | `Debug -> "debug" | `Info -> "info" | `Warn -> "warn" | `Error -> "error" let level = function | "info" -> `Info | "debug" -> `Debug | "warn" -> `Warn | "error" -> `Error | s -> Exn.fail "unrecognized level %s" s module type Target = sig val format : level -> facil -> string -> string val output : level -> facil -> string -> unit end module type Put = sig val put : level -> facil -> string -> unit end module PutSimple(T : Target) : Put = struct let put level facil str = if allowed facil level then T.output level facil (T.format level facil str) end module PutLimited(T : Target) : Put = struct let last = ref (`Debug,"") let n = ref 0 (** FIXME not thread safe *) let put level facil str = match allowed facil level with | false -> () | true -> let this = (level,str) in if !last = this then incr n else begin if !n <> 0 then begin T.output level facil (sprintf "last message repeated %u times, suppressed\n" !n); n := 0 end; last := this; T.output level facil (T.format level facil str); end end module Make(T : Put) = struct let debug_s = T.put `Debug let info_s = T.put `Info let warn_s = T.put `Warn let error_s = T.put `Error let put_s = T.put let debug f fmt = ksprintf (debug_s f) fmt let info f fmt = ksprintf (info_s f) fmt let warn f fmt = ksprintf (warn_s f) fmt let error f fmt = ksprintf (error_s f) fmt end
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>