Safe Haskell | None |
---|---|
Language | Haskell2010 |
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 # | |
FromJSON Level Source # | |
FromJSON Filter Source # | |
FromJSON StreamHandler Source # | |
parseJSON :: Value -> Parser StreamHandler # parseJSONList :: Value -> Parser [StreamHandler] # | |
FromJSON Sink Source # | |
FromJSON (IO SomeHandler) Source # | |
parseJSON :: Value -> Parser (IO SomeHandler) # parseJSONList :: Value -> Parser [IO SomeHandler] # | |
FromJSON (IO Manager) Source # | |
FromJSON (IO RotatingFileHandler) Source # | |
parseJSON :: Value -> Parser (IO RotatingFileHandler) # parseJSONList :: Value -> Parser [IO RotatingFileHandler] # | |
FromJSON (IO FileHandler) Source # | |
parseJSON :: Value -> Parser (IO FileHandler) # parseJSONList :: Value -> Parser [IO FileHandler] # | |
FromJSON (Map String Format1 -> IO SomeHandler) Source # | |
FromJSON (String -> Map String SomeHandler -> Sink) Source # | |