-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | FFI interface to syslog(3) from POSIX.1-2001 -- -- This library provides FFI bindings to syslog(3) from POSIX.1-2001. See -- http://www.opengroup.org/onlinepubs/009695399/basedefs/syslog.h.html -- for further details. @package hsyslog @version 2.0 -- | FFI bindings to syslog(3) from POSIX.1-2001. module System.Posix.Syslog -- | Log messages are prioritized. -- -- Note that the Enum instance for this class is incomplete. We -- abuse toEnum and fromEnum to map these constructors to -- their corresponding bit-mask value in C, but not all uses cases -- provided by of enumerating that class are fully supported (issue -- #5). data Priority -- | system is unusable Emergency :: Priority -- | action must be taken immediately Alert :: Priority -- | critical conditions Critical :: Priority -- | error conditions Error :: Priority -- | warning conditions Warning :: Priority -- | normal but significant condition Notice :: Priority -- | informational Info :: Priority -- | debug-level messages Debug :: Priority -- | Syslog distinguishes various system facilities. Most applications -- should log in USER. data Facility -- | kernel messages KERN :: Facility -- | user-level messages (default unless set otherwise) USER :: Facility -- | mail system MAIL :: Facility -- | system daemons DAEMON :: Facility -- | security/authorization messages AUTH :: Facility -- | messages generated internally by syslogd SYSLOG :: Facility -- | line printer subsystem LPR :: Facility -- | network news subsystem NEWS :: Facility -- | UUCP subsystem UUCP :: Facility -- | clock daemon CRON :: Facility -- | security/authorization messages (effectively equals AUTH on -- some systems) AUTHPRIV :: Facility -- | ftp daemon (effectively equals DAEMON on some systems) FTP :: Facility -- | reserved for local use LOCAL0 :: Facility -- | reserved for local use LOCAL1 :: Facility -- | reserved for local use LOCAL2 :: Facility -- | reserved for local use LOCAL3 :: Facility -- | reserved for local use LOCAL4 :: Facility -- | reserved for local use LOCAL5 :: Facility -- | reserved for local use LOCAL6 :: Facility -- | reserved for local use LOCAL7 :: Facility -- | Options for the syslog service. Set with withSyslog. data Option -- | log the pid with each message PID :: Option -- | log on the console if errors in sending CONS :: Option -- | delay open until first syslog() (default) ODELAY :: Option -- | don't delay open NDELAY :: Option -- | don't wait for console forks: DEPRECATED NOWAIT :: Option -- | log to stderr as well (might be a no-op on some systems) PERROR :: Option -- | Bracket an IO computation between calls to _openlog, -- _setlogmask, and _closelog. The function can be used as -- follows: -- --
-- main = withSyslog "my-ident" [PID, PERROR] USER (logUpTo Debug) $ do -- putStrLn "huhu" -- syslog Debug "huhu" ---- -- Note that these are process-wide settings, so multiple calls to -- this function will interfere with each other in unpredictable ways. withSyslog :: String -> [Option] -> Facility -> [Priority] -> IO a -> IO a -- | Log a message with the given priority. -- -- Note that the API of this function is somewhat unsatisfactory and is -- likely to change in the future: -- --
-- >>> logUpTo(Debug) -- [Emergency,Alert,Critical,Error,Warning,Notice,Info,Debug] ---- --
-- >>> logUpTo(Emergency) -- [Emergency] --logUpTo :: Priority -> [Priority] -- | Escape any occurances of '%' in a string, so that it is safe -- to pass it to _syslog. The syslog wrapper does this -- automatically. -- -- Unfortunately, the application of this function to every single syslog -- message is a performence nightmare. Instead, we should call syslog the -- existence of this function is a kludge, in a way that doesn't require -- any escaping (issue #8). safeMsg :: String -> String -- | Open a connection to the system logger for a program. The string -- identifier passed as the first argument is prepended to every message, -- and is typically set to the program name. The behavior is unspecified -- by POSIX.1-2008 if that identifier is nullPtr. _openlog :: CString -> CInt -> CInt -> IO () -- | Close the descriptor being used to write to the system logger. _closelog :: IO () -- | A process has a log priority mask that determines which calls to -- syslog may be logged. All other calls will be ignored. Logging -- is enabled for the priorities that have the corresponding bit set in -- mask. The initial mask is such that logging is enabled for all -- priorities. This function sets this logmask for the calling process, -- and returns the previous mask. If the mask argument is 0, the current -- logmask is not modified. _setlogmask :: CInt -> IO CInt -- | Generate a log message, which will be distributed by -- syslogd(8). The priority argument is formed by ORing the -- facility and the level values (explained below). The remaining -- arguments are a format, as in printf(3) and any arguments required by -- the format, except that the two character sequence %m will be replaced -- by the error message string strerror(errno). A trailing newline may be -- added if needed. _syslog :: CInt -> CString -> IO () instance Eq Priority instance Bounded Priority instance Show Priority instance Read Priority instance Generic Priority instance Eq Facility instance Bounded Facility instance Show Facility instance Read Facility instance Eq Option instance Bounded Option instance Show Option instance Datatype D1Priority instance Constructor C1_0Priority instance Constructor C1_1Priority instance Constructor C1_2Priority instance Constructor C1_3Priority instance Constructor C1_4Priority instance Constructor C1_5Priority instance Constructor C1_6Priority instance Constructor C1_7Priority instance Enum Option instance Enum Facility instance Enum Priority