level
severityOnly output messages with level
severity greater than of equal to self.level
.
var stderr = new StringWriter
var logger = new Logger(warn_level, stderr, null)
# This message will be displayed:
assert logger.warn("This is a warning.")
assert stderr.to_s.trim.split("\n").last == "This is a warning."
# This message will not:
assert not logger.info("This is some info.")
assert stderr.to_s.trim.split("\n").last == "This is a warning."
Each logger can be given a default formatter used to format the messages before outputting them:
var formatter = new DefaultFormatter(no_color = true)
logger = new Logger(warn_level, stderr, formatter)
logger.warn("This is a warning.")
assert stderr.to_s.trim.split("\n").last == "Warning: This is a warning."
Optionally, a Formatter
can be given to replace the default_formatter
used by default.
logger = new Logger(warn_level, stderr, null)
# Display a message without any formatter
logger.warn("This is a warning.")
assert stderr.to_s.trim.split("\n").last == "This is a warning."
# Display a message with a custom formatter
logger.warn("This is a warning.", formatter)
assert stderr.to_s.trim.split("\n").last == "Warning: This is a warning."
# Output a message with `level` severity
#
# Only output messages with `level` severity greater than of equal to `self.level`.
#
# ~~~
# var stderr = new StringWriter
# var logger = new Logger(warn_level, stderr, null)
#
# # This message will be displayed:
# assert logger.warn("This is a warning.")
# assert stderr.to_s.trim.split("\n").last == "This is a warning."
#
# # This message will not:
# assert not logger.info("This is some info.")
# assert stderr.to_s.trim.split("\n").last == "This is a warning."
# ~~~
#
# Each logger can be given a default formatter used to format the messages
# before outputting them:
#
# ~~~
# var formatter = new DefaultFormatter(no_color = true)
# logger = new Logger(warn_level, stderr, formatter)
# logger.warn("This is a warning.")
# assert stderr.to_s.trim.split("\n").last == "Warning: This is a warning."
# ~~~
#
# Optionally, a `Formatter` can be given to replace the `default_formatter`
# used by default.
#
# ~~~
# # Create a formatter with no default decorator
# logger = new Logger(warn_level, stderr, null)
#
# # Display a message without any formatter
# logger.warn("This is a warning.")
# assert stderr.to_s.trim.split("\n").last == "This is a warning."
#
# # Display a message with a custom formatter
# logger.warn("This is a warning.", formatter)
# assert stderr.to_s.trim.split("\n").last == "Warning: This is a warning."
# ~~~
fun add(level: Int, message: Writable, formatter: nullable Formatter): Bool do
var format = formatter or else default_formatter
if format == null then
return add_raw(level, message)
end
return add_raw(level, format.format(level, message))
end
lib/logger/logger.nit:158,2--206,4