hslogger-1.3.2.0: src/System/Log.hs
{-# LANGUAGE CPP #-}
{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE DeriveGeneric #-}
{- |
Module : System.Log
Copyright : Copyright (C) 2004-2011 John Goerzen
License : BSD3
Portability: portable
Haskell Logging Framework
Written by John Goerzen, jgoerzen\@complete.org
This module defines basic types used for logging.
Extensive documentation is available in
"System.Log.Logger".
-}
module System.Log(-- * Types
Priority(..),
LogRecord
)
where
import Control.DeepSeq (NFData(rnf))
import Data.Data (Data, Typeable)
import GHC.Generics (Generic)
{- | Priorities are used to define how important a log message is.
Users can filter log messages based on priorities.
These have their roots on the traditional syslog system. The standard
definitions are given below, but you are free to interpret them however you
like. They are listed here in ascending importance order.
-}
data Priority =
DEBUG -- ^ Debug messages
| INFO -- ^ Information
| NOTICE -- ^ Normal runtime conditions
| WARNING -- ^ General Warnings
| ERROR -- ^ General Errors
| CRITICAL -- ^ Severe situations
| ALERT -- ^ Take immediate action
| EMERGENCY -- ^ System is unusable
deriving (Eq, Ord, Enum, Bounded, Show, Read, Data, Typeable, Generic)
-- | @since 1.3.1.0
instance NFData Priority where rnf = (`seq` ())
{- | Internal type of log records -}
type LogRecord = (Priority, String)