homepage: https://github.com/larskuhtz/loglevel
changelog-type: markdown
hash: 951338d262fb734cc2f06a6ee9fddb7ea998a71a5098011d864f038f4ec7ac2a
test-bench-deps:
  loglevel: -any
  base: ! '>=4.7 && <5.0'
  text: ! '>=1.0'
maintainer: lakuhtz@gmail.com
synopsis: Log Level Datatype
changelog: ! '# Revision history for loglevel


  ## 0.1.0.0 -- 2018-08-29


  * First version.

'
basic-deps:
  base: ! '>=4.7 && <5.0'
  text: ! '>=1.0'
  deepseq: ! '>=1.4'
all-versions:
- '0.1.0.0'
author: Lars Kuhtz
latest: '0.1.0.0'
description-type: markdown
description: ! '[![Build Status](https://travis-ci.org/larskuhtz/loglevel.svg?branch=master)](https://travis-ci.org/larskuhtz/loglevel)


  # Log Level Datatype


  This package provides a Haskell log-level datatype. It allows to specify APIs

  with logging-callbacks without depending on a particular logging framework.


  There is a large number of different Haskell logging frameworks that support

  different use cases and backends. As a consequence these framework make

  different trade-offs with respect to their architecture and implementation.

  Often they have complex internals and many external dependencies.


  While logging frameworks differ a lot in their internals and backends, they tend

  to have similar frontends. In particular, many software components depend for

  logging only on a callback function that typically has a type similar to


  ```haskell

  loggingCallback ∷ LogLevel → Text → IO ()

  ```


  The only framework-specific dependency is the `LogLevel` type. This type is in

  most cases similar, often isomorphic, and sometimes even identical across

  different frameworks.


  It is unfortunate that a software component has to depend on a particular

  logging framework (and all of the frameworks dependencies) just for using the

  `LogLevel` type that is almost identical throughout most logging frameworks.


  This package allows software components to include logging callbacks in their

  APIs without depending on a particular logging framework.


  ---


  Even more complex logging callbacks often have a type along the lines of


  ```haskell

  genericLoggingCallback ∷ c a ⇒ LogLevel → a → IO ()

  ```


  where `c` is a constraint made up from common type classes like `ToJSON`,

  `Serializable`, `NFData`, or `Generic`.


'
license-name: MIT

Update from Hackage at 2018-08-30T06:19:50Z
Update from Hackage at 2018-08-30T06:19:50Z
