log-warper alternatives and similar packages
Based on the "Interfaces" category.
Alternatively, view log-warper alternatives based on common mentions on social networks and blogs.
Do you think we are missing an alternative of log-warper or a related project?
README
log-warper
log-warper
is a high level and featureful logging library with monadic interface.
You can jump right into introduction tutorial
to see how to write logging with log-warper
.
Features
Here is the list of features log-warper
provides.
- Hierarchical logger names.
Logger names (tags for loggers) form hierarchy. It means, that ""
(also known as mempty
or rootLoggerName
) is a parent of logger with name "node"
which is
a parent of logger with name "node.communication"
. So, logger name comprises dot-separated components.
This means that if some logger name doesn't have some settings (like severity or output file) it takes
its settings from the closest parent, containing this settings.
- Logging initialization from
.yaml
configuration file.
Whole logging configuration can be specifed in a single .yaml
file.
See example here.
- Monadic logging interface.
log-warper
uses mtl
-style type classes to provide monadic interfaces for logging.
- Strict
StateT
based pure logging.
See this tutorial
on pure logging with log-warper
.
Different severity levels of messages with the ability to configure
Set
of severities.Output is colored :star:
When you log messages, you see time of this logging message, logger name, severity and ThreadId
.
Message formatting is configurable. Color or logged message tag depends on Severity
for this message.
- Flexible and easy creation of
LoggerConfig
using monoidal builders and lenses.
In case .yaml
configuration is not enough for you, you can use lens
-based EDSL to create configurations.
LoggerConfig
also implements instances for Semigroup
and Monoid
so you can combine your configurations
from different sources (CLI and .yaml
for example).
- Logger rotation.
log-warper
supports logger rotation. Yes, there exist logrotate
and similar tools.
But it's not easy to configure cross-platform (Windows, Linux, OSX) logging rotation with external tools.
- Ability to acquire last
N
megabytes of logs from in-memory cache.
In case you want to analyze logging messages you can take them from in-memory cache.
Reference guide (FAQ)
Here you can find hints and tips how to achieve desired behavior with log-warper
.
- How can I redirect all output to stderr?
- Write
termSeveritiesErr: All
on top-level of your.yaml
file.
- How can I disable only Error messages for my logger?
- Use
excludeError
function.
- How can I show
ThreadId
inside log message?
- Add
showTid: true
to your.yaml
file.
- How to easily disable terminal output?
- Put these lines into
.yaml
file:
termSeveritiesOut : []
termSeveritiesErr : []
- How can I enable messages with severity
Info
and higher?
- Write
severity: Info+
inside tree node of your logger settings.
- How can I log inside functions like
forkIO
?
- Use
liftLogIO
function. Its Haddock contains nice usage example.
- How can I easily log exceptions without throwing them?
- Use functions from
System.Wlog.Exceptions
module.
Contributing
This project uses
universum
as default prelude
*Note that all licence references and agreements mentioned in the log-warper README section above
are relevant to that project's source code only.