{-# LANGUAGE DeriveGeneric #-} {- | Maintainer: simons@cryp.to Stability: provisional Portability: POSIX FFI bindings to @syslog(3)@ from . This module is intended for purposes of low-level implementation. Users of this library should prefer safer and more convenient API provided by "System.Posix.Syslog". -} module System.Posix.Syslog.Facility where import Foreign.C.Types import GHC.Generics ( Generic ) #include -- | Syslog distinguishes various system facilities. Most applications should -- log in 'USER'. data Facility = Kernel -- ^ kernel messages | User -- ^ user-level messages (default unless set otherwise) | Mail -- ^ mail system | News -- ^ network news subsystem | UUCP -- ^ UUCP subsystem | Daemon -- ^ system daemons | Auth -- ^ security and authorization messages | Cron -- ^ clock daemon | LPR -- ^ line printer subsystem | Local0 -- ^ reserved for local use | Local1 -- ^ reserved for local use | Local2 -- ^ reserved for local use | Local3 -- ^ reserved for local use | Local4 -- ^ reserved for local use | Local5 -- ^ reserved for local use | Local6 -- ^ reserved for local use | Local7 -- ^ reserved for local use deriving (Show, Read, Bounded, Enum, Eq, Generic) -- | Translate a 'Facility' into the system-dependent identifier that's used by -- the @syslog(3)@ implementation. {-# INLINE fromFacility #-} fromFacility :: Facility -> CInt fromFacility Kernel = #{const LOG_KERN} fromFacility User = #{const LOG_USER} fromFacility Mail = #{const LOG_MAIL} fromFacility Daemon = #{const LOG_DAEMON} fromFacility Auth = #{const LOG_AUTH} fromFacility LPR = #{const LOG_LPR} fromFacility News = #{const LOG_NEWS} fromFacility UUCP = #{const LOG_UUCP} fromFacility Cron = #{const LOG_CRON} fromFacility Local0 = #{const LOG_LOCAL0} fromFacility Local1 = #{const LOG_LOCAL1} fromFacility Local2 = #{const LOG_LOCAL2} fromFacility Local3 = #{const LOG_LOCAL3} fromFacility Local4 = #{const LOG_LOCAL4} fromFacility Local5 = #{const LOG_LOCAL5} fromFacility Local6 = #{const LOG_LOCAL6} fromFacility Local7 = #{const LOG_LOCAL7}