1 (* Copyright (C
) 1999-2007 Henry Cejtin
, Matthew Fluet
, Suresh
2 * Jagannathan
, and Stephen Weeks
.
3 * Copyright (C
) 1997-2000 NEC Research Institute
.
5 * MLton is released under a BSD
-style license
.
6 * See the file MLton
-LICENSE for details
.
9 (* From Tom
7 <twm@andrew
.cmu
.edu
>. *)
10 (* Implementation
of the SYSLOG interface using MLton FFI
.
11 * This will only work
in MLton
.
14 structure MLtonSyslog
:> MLTON_SYSLOG
=
17 open PrimitiveFFI
.MLton
.Syslog
19 type openflag
= C_Int
.t
25 val NDELAY
= LOG_NDELAY
26 val NOWAIT
= LOG_NOWAIT
27 val ODELAY
= LOG_ODELAY
29 val PERROR
= LOG_PERROR
34 type facility
= C_Int
.t
39 val AUTHPRIV
= LOG_AUTH
41 val DAEMON
= LOG_DAEMON
43 val LOCAL0
= LOG_LOCAL0
44 val LOCAL1
= LOG_LOCAL1
45 val LOCAL2
= LOG_LOCAL2
46 val LOCAL3
= LOG_LOCAL3
47 val LOCAL4
= LOG_LOCAL4
48 val LOCAL5
= LOG_LOCAL5
49 val LOCAL6
= LOG_LOCAL6
50 val LOCAL7
= LOG_LOCAL7
55 val SYSLOG
= LOG_SYSLOG
61 type loglevel
= C_Int
.t
72 val NOTICE
= LOG_NOTICE
73 val WARNING
= LOG_WARNING
76 val openlog
= fn (s
, opt
, fac
) =>
78 val optf
= foldl C_Int
.orb
0 opt
80 openlog (NullString
.nullTerm s
, optf
, fac
)
83 val closelog
= fn () =>
86 val log
= fn (lev
, msg
) =>
87 syslog (lev
, NullString
.nullTerm msg
)