log4hs-0.2.0.0: A python logging style log library

Safe HaskellNone
LanguageHaskell2010

Logging.Aeson

Contents

Synopsis

    Documentation

    By using Aeson, we can decode json string into Manager.

    A basic Manager json format:

      {
        "loggers": {"root": {}, "MyLogger": {}},
        "handlers": {"console": {}, "file": {}},
        "formatters": {"default": "format", "simple": "format"},
        "disabled": false,
        "catchUncaughtException": true
      }
    

    In practice, a set of handlers share a formatter, and other handlers share another one, so we define all the formatters in a map, handler refernces the formatter throught its key.

    So as handlers, sinks may share same handlers.

    Examples of Formatter json

    See Format of vformat package for more information about formatting.

      "{message}"
      "{logger} {level}: {message}"
      "{logger:<20.20s} {level:<8s}: {message}"
      "{asctime:%Y-%m-%dT%H:%M:%S%6Q%z} - {level} - {logger}] {message}"
    

    Examples of Handler json

    Note: Besides some common field, handler's other fields depend on its type.

      -- StreamHandler
      {
        "type": "StreamHandler",
        "stream": "stderr",
        "level": "DEBUG",
        "filterer": ["Package.Module.Submodule"],
        "formatter": "default",
      }
    
      -- FileHandler
      {
        "type": "FileHandler",
        "file": "./default.log",
        "level": "INFO",
        "filterer": [],
        "formatter": "simple",
      }
    

    Examples of Logger (Sink) json

      -- a standard format
      {
        "level": "DEBUG",
        "filterer": ["Package.Module.Submodule"],
        "handlers": ["console"],
        "propagate": true,
        "disabled": false
      }
    
      -- this example is equivalent to the first
      {
        "level": "DEBUG",
        "filterer": ["Package.Module.Submodule"],
        "handlers": ["console"]
      }
    
      -- another example
      {
        "level": "INFO",
        "handlers": ["console", "file"],
        "propagate": false
      }
    

    Orphan instances

    FromJSON Format1 Source # 
    Instance details

    FromJSON Level Source # 
    Instance details

    FromJSON Filter Source # 
    Instance details

    FromJSON StreamHandler Source # 
    Instance details

    FromJSON Sink Source # 
    Instance details

    FromJSON (IO SomeHandler) Source # 
    Instance details

    FromJSON (IO Manager) Source # 
    Instance details

    FromJSON (IO FileHandler) Source # 
    Instance details

    FromJSON (Map String Format1 -> IO SomeHandler) Source # 
    Instance details

    FromJSON (String -> Map String SomeHandler -> Sink) Source # 
    Instance details