co-log-core-0.2.0.0: Composable Contravariant Comonadic Logging Library

Copyright(c) 2018-2019 Kowainik
LicenseMIT
MaintainerKowainik <xrom.xkov@gmail.com>
Safe HaskellNone
LanguageHaskell2010

Colog.Core.Severity

Contents

Description

This module introduces Severity data type for expressing how severe the message is. Also, it contains useful functions and patterns for work with Severity.

Severity Pattern Meaning Example
Debug D Information useful for debug purposes Internal function call logs
Info I Normal operational information Finish file uploading
Warning W General warnings, non-critical failures Image load error
Error E General errors/severe errors Could not connect to the DB
Synopsis

Documentation

data Severity Source #

Severity for the log messages.

Constructors

Debug

Information useful for debug purposes.

E.g. output of the function that is important for the internal development, not for users. Like, the result of SQL query.

Info

Normal operational information.

E.g. describing general steps: starting application, finished downloading.

Warning

General warnings, non-critical failures.

E.g. couldn't download icon from some service to display.

Error

General errors/severe errors.

E.g. exceptional situations: couldn't syncronize accounts.

Instances
Bounded Severity Source # 
Instance details

Defined in Colog.Core.Severity

Enum Severity Source # 
Instance details

Defined in Colog.Core.Severity

Eq Severity Source # 
Instance details

Defined in Colog.Core.Severity

Ord Severity Source # 
Instance details

Defined in Colog.Core.Severity

Read Severity Source # 
Instance details

Defined in Colog.Core.Severity

Show Severity Source # 
Instance details

Defined in Colog.Core.Severity

Ix Severity Source # 
Instance details

Defined in Colog.Core.Severity

Patterns

Instead of using full names of the constructors you can instead use one-letter patterns. To do so you can import and use the pattern:

import Colog (pattern D)

example :: WithLog env Message m => m ()
example = log D "I'm using severity pattern"

Moreover, you could use patterns when pattern-matching on severity

errorToStderr :: Severity -> IO ()
errorToStderr E = hputStrLn stderr "Error severity"
errorToStderr _ = putStrLn "Something else"

pattern D :: Severity Source #

pattern I :: Severity Source #

pattern W :: Severity Source #

pattern E :: Severity Source #

filterBySeverity :: Applicative m => Severity -> (a -> Severity) -> LogAction m a -> LogAction m a Source #

Filters messages by the given Severity.