cabal-version:       3.0
name:                co-log-json
version:             0.0.1.0
synopsis:            Structured messages support in co-log ecosystem.
description:

   The library implements of a very simple approach to structured logging, that
   ca be used with the [co-log](https://hackage.haskell.org/package/co-log)
   ecosystem or on it's own see [cheops-logger](https://github.com/cheopslab/cheops-logger).

   It provides:

     * "Colog.Json" — API for adding structured context to the log messages
     * "Colog.Json.Action" — efficient function for dumping logs in the 
       following format.

   By default it emits logs in the following format (pretty-printed for convenience):

   @
   { "namespace":"server.package" -- namespace for the component
   , "severity": \"DEBUG\"          -- severity level
   , "thread":19                  -- id of the thread that emitted the message
   , "message":"some long text "  -- textual message itself
   , "data":                      -- user data
      { "ip":"8.8.8.8"
      , "http.request_id":"b362cd5db5c193c05312af4d3a399955"
      , "http.method":\"DELETE\"
      , "http.path":"\/url\/"
      , "user_id":"123"
      } 
   }
   @

   The most interesting thing here is the field @data@ that can be used by the user
   to add additional structured info to the message.

bug-reports:         https://github.com/cheopslab/cheops-logger/issues/new?labels=co-log-json
license:             MPL-2.0
license-file:        LICENSE
author:              Alexander Vershilov
maintainer:          alexander.vershilov@sirius.online
copyright:           (C) 2019-2020 Фонд Талант и Успех
category:            System
extra-source-files: 
  CHANGELOG.md
  Readme.md

library
  exposed-modules:
    Colog.Json
    Colog.Json.Action
    Colog.Json.Message
    Colog.Json.Internal.Structured
  default-extensions:
    BlockArguments
    DerivingStrategies
    FlexibleContexts
    GeneralizedNewtypeDeriving
    LambdaCase
    OverloadedStrings
    RecordWildCards
  other-extensions:
    UnliftedFFITypes
    MagicHash
    FlexibleContexts
  build-depends:
      base >=4.11 && <5
    , aeson ^>= 1.5
    , bytestring ^>=0.10
    , text ^>=1.2
    , containers ^>=0.6
    , co-log-core ^>=0.2
    , string-conv ^>=0.1
  hs-source-dirs:      src
  ghc-options:         -Wall
  default-language:    Haskell2010