20 |
|
|
21 |
open Autoconf |
open Autoconf |
22 |
|
|
|
|
|
23 |
external format_int: string -> int -> string = "caml_format_int" |
external format_int: string -> int -> string = "caml_format_int" |
24 |
external format_int32: string -> int32 -> string = "caml_int32_format" |
external format_int32: string -> int32 -> string = "caml_int32_format" |
25 |
external format_nativeint: string -> nativeint -> string = "caml_nativeint_format" |
external format_nativeint: string -> nativeint -> string = "caml_nativeint_format" |
26 |
external format_int64: string -> int64 -> string = "caml_int64_format" |
external format_int64: string -> int64 -> string = "caml_int64_format" |
27 |
external format_float: string -> float -> string = "caml_format_float" |
external format_float: string -> float -> string = "caml_format_float" |
28 |
|
|
29 |
|
let log_time () = |
30 |
|
let t = Unix.localtime (Unix.time ()) in |
31 |
|
let { Unix.tm_year = tm_year; Unix.tm_mon = tm_mon; Unix.tm_mday = tm_mday; |
32 |
|
Unix.tm_hour = tm_hour; Unix.tm_min = tm_min; Unix.tm_sec = tm_sec } = t in |
33 |
|
Printf.sprintf "%4d/%02d/%02d %02d:%02d:%02d " (tm_year+1900) (tm_mon+1) tm_mday tm_hour tm_min tm_sec |
34 |
|
|
35 |
let bad_format fmt pos = |
let bad_format fmt pos = |
36 |
invalid_arg |
invalid_arg |
37 |
("printf: bad format " ^ String.sub fmt pos (String.length fmt - pos)) |
("printf: bad format " ^ String.sub fmt pos (String.length fmt - pos)) |
199 |
(fmt : ('a,unit, unit) format ) |
(fmt : ('a,unit, unit) format ) |
200 |
|
|
201 |
let lprintf_nl fmt = |
let lprintf_nl fmt = |
202 |
|
cprintf (fun s -> try !lprintf_handler ((Printf.sprintf "%s" (log_time ()))^s^"\n") with _ -> ()) |
203 |
|
(fmt : ('a,unit, unit) format ) |
204 |
|
|
205 |
|
let lprintf_nl2 fmt = |
206 |
cprintf (fun s -> try !lprintf_handler (s^"\n") with _ -> ()) |
cprintf (fun s -> try !lprintf_handler (s^"\n") with _ -> ()) |
207 |
(fmt : ('a,unit, unit) format ) |
(fmt : ('a,unit, unit) format ) |
208 |
|
|