logger-effectful-0.1: Effectful version of @monad-logger@'s API.
Safe HaskellNone
LanguageGHC2021

Effectful.Logger.Namespace

Description

Provides static namespaced logging functionality on top of Logger.

Since: 0.1

Synopsis

Effect

newtype Namespace Source #

Logging namespace.

Since: 0.1

Constructors

MkNamespace 

Fields

Instances

Instances details
NFData Namespace Source #

Since: 0.1

Instance details

Defined in Effectful.Logger.Utils

Methods

rnf :: Namespace -> () #

Monoid Namespace Source #

Since: 0.1

Instance details

Defined in Effectful.Logger.Utils

Semigroup Namespace Source #

Since: 0.1

Instance details

Defined in Effectful.Logger.Utils

IsString Namespace Source #

Since: 0.1

Instance details

Defined in Effectful.Logger.Utils

Generic Namespace Source # 
Instance details

Defined in Effectful.Logger.Utils

Associated Types

type Rep Namespace

Since: logger-effectful-0.1

Instance details

Defined in Effectful.Logger.Utils

type Rep Namespace = D1 ('MetaData "Namespace" "Effectful.Logger.Utils" "logger-effectful-0.1-inplace" 'True) (C1 ('MetaCons "MkNamespace" 'PrefixI 'True) (S1 ('MetaSel ('Just "unNamespace") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Seq Text))))
IsList Namespace Source #

Since: 0.1

Instance details

Defined in Effectful.Logger.Utils

Associated Types

type Item Namespace 
Instance details

Defined in Effectful.Logger.Utils

Show Namespace Source #

Since: 0.1

Instance details

Defined in Effectful.Logger.Utils

Eq Namespace Source #

Since: 0.1

Instance details

Defined in Effectful.Logger.Utils

(k ~ An_Iso, a ~ Seq Text, b ~ Seq Text) => LabelOptic "unNamespace" k Namespace Namespace a b Source #

Since: 0.1

Instance details

Defined in Effectful.Logger.Utils

type Rep Namespace Source #

Since: 0.1

Instance details

Defined in Effectful.Logger.Utils

type Rep Namespace = D1 ('MetaData "Namespace" "Effectful.Logger.Utils" "logger-effectful-0.1-inplace" 'True) (C1 ('MetaCons "MkNamespace" 'PrefixI 'True) (S1 ('MetaSel ('Just "unNamespace") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Seq Text))))
type Item Namespace Source # 
Instance details

Defined in Effectful.Logger.Utils

addNamespace Source #

Arguments

:: forall env a k (es :: [Effect]). (Is k A_Setter, LabelOptic' "namespace" k env Namespace, Reader env :> es) 
=> Text

New namespace.

-> Eff es a 
-> Eff es a 

Adds to the namespace.

Since: 0.1

Constraint aliases

type HasNamespace env k (es :: [Effect]) = (Is k A_Getter, Is k A_Setter, LabelOptic' "namespace" k env Namespace, Reader env :> es) Source #

Alias for constraints required to use namespaces.

type LoggerNS env k (es :: [Effect]) = (HasNamespace env k es, Logger :> es, Reader env :> es) Source #

Alias for HasNamespace and Logger constraint.

Formatting

data LogFormatter Source #

Formatter for logs.

Since: 0.1

Constructors

MkLogFormatter 

Fields

Instances

Instances details
Generic LogFormatter Source # 
Instance details

Defined in Effectful.Logger.Utils

Associated Types

type Rep LogFormatter

Since: logger-effectful-0.1

Instance details

Defined in Effectful.Logger.Utils

type Rep LogFormatter = D1 ('MetaData "LogFormatter" "Effectful.Logger.Utils" "logger-effectful-0.1-inplace" 'False) (C1 ('MetaCons "MkLogFormatter" 'PrefixI 'True) ((S1 ('MetaSel ('Just "locStrategy") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 LocStrategy) :*: S1 ('MetaSel ('Just "newline") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Bool)) :*: (S1 ('MetaSel ('Just "threadLabel") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Bool) :*: S1 ('MetaSel ('Just "timezone") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Bool))))
Show LogFormatter Source #

Since: 0.1

Instance details

Defined in Effectful.Logger.Utils

Eq LogFormatter Source #

Since: 0.1

Instance details

Defined in Effectful.Logger.Utils

(k ~ A_Lens, a ~ LocStrategy, b ~ LocStrategy) => LabelOptic "locStrategy" k LogFormatter LogFormatter a b Source #

Since: 0.1

Instance details

Defined in Effectful.Logger.Utils

(k ~ A_Lens, a ~ Bool, b ~ Bool) => LabelOptic "newline" k LogFormatter LogFormatter a b Source #

Since: 0.1

Instance details

Defined in Effectful.Logger.Utils

(k ~ A_Lens, a ~ Bool, b ~ Bool) => LabelOptic "threadLabel" k LogFormatter LogFormatter a b Source #

Since: 0.1

Instance details

Defined in Effectful.Logger.Utils

(k ~ A_Lens, a ~ Bool, b ~ Bool) => LabelOptic "timezone" k LogFormatter LogFormatter a b Source #

Since: 0.1

Instance details

Defined in Effectful.Logger.Utils

type Rep LogFormatter Source #

Since: 0.1

Instance details

Defined in Effectful.Logger.Utils

type Rep LogFormatter = D1 ('MetaData "LogFormatter" "Effectful.Logger.Utils" "logger-effectful-0.1-inplace" 'False) (C1 ('MetaCons "MkLogFormatter" 'PrefixI 'True) ((S1 ('MetaSel ('Just "locStrategy") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 LocStrategy) :*: S1 ('MetaSel ('Just "newline") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Bool)) :*: (S1 ('MetaSel ('Just "threadLabel") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Bool) :*: S1 ('MetaSel ('Just "timezone") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Bool))))

data LocStrategy Source #

Determines how we log location data.

Since: 0.1

Constructors

LocPartial !Loc

Logs the location with filename, line, col.

Since: 0.1

LocStable !Loc

Logs the location with filename.

Since: 0.1

LocNone

No location logging.

Since: 0.1

Instances

Instances details
Generic LocStrategy Source # 
Instance details

Defined in Effectful.Logger.Utils

Associated Types

type Rep LocStrategy

Since: logger-effectful-0.1

Instance details

Defined in Effectful.Logger.Utils

type Rep LocStrategy = D1 ('MetaData "LocStrategy" "Effectful.Logger.Utils" "logger-effectful-0.1-inplace" 'False) (C1 ('MetaCons "LocPartial" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Loc)) :+: (C1 ('MetaCons "LocStable" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Loc)) :+: C1 ('MetaCons "LocNone" 'PrefixI 'False) (U1 :: Type -> Type)))
Show LocStrategy Source #

Since: 0.1

Instance details

Defined in Effectful.Logger.Utils

Eq LocStrategy Source #

Since: 0.1

Instance details

Defined in Effectful.Logger.Utils

type Rep LocStrategy Source #

Since: 0.1

Instance details

Defined in Effectful.Logger.Utils

type Rep LocStrategy = D1 ('MetaData "LocStrategy" "Effectful.Logger.Utils" "logger-effectful-0.1-inplace" 'False) (C1 ('MetaCons "LocPartial" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Loc)) :+: (C1 ('MetaCons "LocStable" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Loc)) :+: C1 ('MetaCons "LocNone" 'PrefixI 'False) (U1 :: Type -> Type)))

formatLog Source #

Arguments

:: forall env msg k (es :: [Effect]). (Concurrent :> es, Is k A_Getter, LabelOptic' "namespace" k env Namespace, HasCallStack, Reader env :> es, Time :> es, ToLogStr msg) 
=> LogFormatter

Formatter.

-> LogLevel

Log level.

-> msg

Message.

-> Eff es LogStr 

Produces a formatted LogStr in terms of:

  • Static Concurrent.
  • Static Reader.
  • Dynamic Time.

Example

-- [timestamp][thread_label][namespace][code_loc][level] msg
[2022-02-08 10:20:05][thread-label][one.two][filename:1:2][Warn] msg

Since: 0.1

LogStr

logStrToText :: LogStr -> Text Source #

Since: 0.1

Optics

LocStrategy