co-log-core-0.3.0.0: Composable Contravariant Comonadic Logging Library
Copyright(c) 2018-2020 Kowainik 2021 Co-Log
LicenseMPL-2.0
MaintainerCo-Log <xrom.xkov@gmail.com>
StabilityStable
PortabilityPortable
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.

SeverityPatternMeaningExample
DebugDInformation useful for debug purposesInternal function call logs
InfoINormal operational informationFinish file uploading
WarningWGeneral warnings, non-critical failuresImage load error
ErrorEGeneral errors/severe errorsCould 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

Instances details
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.