Improve Logger formatter defaults
* Make colors in the docs consistent with the ones in the code * Add new lines before and after each message
This commit is contained in:
@@ -145,7 +145,7 @@ defmodule Logger do
|
||||
* `:enabled` - boolean value that allows for switching the
|
||||
coloring on and off. Defaults to: `IO.ANSI.enabled?`
|
||||
|
||||
* `:debug` - color for debug messages. Defaults to: `:magenta`
|
||||
* `:debug` - color for debug messages. Defaults to: `:cyan`
|
||||
|
||||
* `:info` - color for info messages. Defaults to: `:normal`
|
||||
|
||||
@@ -159,7 +159,7 @@ defmodule Logger do
|
||||
`config/config.exs` file:
|
||||
|
||||
config :logger, :console,
|
||||
format: "$date $time [$level] $metadata$message\n",
|
||||
format: "\n$date $time [$level] $metadata$message",
|
||||
metadata: [:user_id]
|
||||
|
||||
You can read more about formatting in `Logger.Formatter`.
|
||||
|
||||
@@ -54,9 +54,9 @@ defmodule Logger.Backends.Console do
|
||||
defp configure_colors(console) do
|
||||
colors = Keyword.get(console, :colors, [])
|
||||
debug = Keyword.get(colors, :debug, :cyan)
|
||||
info = Keyword.get(colors, :info, :green)
|
||||
info = Keyword.get(colors, :info, :normal)
|
||||
warn = Keyword.get(colors, :warn, :yellow)
|
||||
error = Keyword.get(colors, :error, :magenta)
|
||||
error = Keyword.get(colors, :error, :red)
|
||||
enabled = Keyword.get(colors, :enabled, IO.ANSI.enabled?)
|
||||
%{debug: debug, info: info, warn: warn, error: error, enabled: enabled}
|
||||
end
|
||||
|
||||
@@ -41,7 +41,7 @@ defmodule Logger.Formatter do
|
||||
"""
|
||||
|
||||
@valid_patterns [:time, :date, :message, :level, :node, :metadata, :levelpad]
|
||||
@default_pattern "$time $metadata[$level] $levelpad$message\n"
|
||||
@default_pattern "\n$time $metadata[$level] $levelpad$message\n"
|
||||
|
||||
@doc ~S"""
|
||||
Compiles a format string into an array that the `format/5` can handle.
|
||||
|
||||
@@ -67,7 +67,7 @@ defmodule Logger.Backends.ConsoleTest do
|
||||
|
||||
assert capture_log(fn ->
|
||||
Logger.info("hello")
|
||||
end) == IO.ANSI.green() <> "hello" <> IO.ANSI.reset()
|
||||
end) == IO.ANSI.normal() <> "hello" <> IO.ANSI.reset()
|
||||
|
||||
Logger.configure_backend(:console, [colors: [info: :cyan]])
|
||||
|
||||
@@ -87,7 +87,7 @@ defmodule Logger.Backends.ConsoleTest do
|
||||
|
||||
assert capture_log(fn ->
|
||||
Logger.error("hello")
|
||||
end) == IO.ANSI.magenta() <> "hello" <> IO.ANSI.reset()
|
||||
end) == IO.ANSI.red() <> "hello" <> IO.ANSI.reset()
|
||||
|
||||
Logger.configure_backend(:console, [colors: [error: :cyan]])
|
||||
|
||||
|
||||
@@ -7,48 +7,48 @@ defmodule Logger.ErrorHandlerTest do
|
||||
wait_for_handler(:error_logger, Logger.ErrorHandler)
|
||||
end) =~ "[error] GenEvent handler Logger.ErrorHandler installed at :error_logger\n" <>
|
||||
"** (exit) an exception was raised:"
|
||||
assert error_log(:info_msg, "~p~n", [:hello]) =~ msg("[info] :hello\n")
|
||||
assert error_log(:info_msg, "~p~n", [:hello]) =~ msg("[info] :hello")
|
||||
end
|
||||
|
||||
test "survives after Logger exit" do
|
||||
Process.whereis(Logger) |> Process.exit(:kill)
|
||||
wait_for_logger()
|
||||
wait_for_handler(:error_logger, Logger.ErrorHandler)
|
||||
assert error_log(:info_msg, "~p~n", [:hello]) =~ msg("[info] :hello\n")
|
||||
assert error_log(:info_msg, "~p~n", [:hello]) =~ msg("[info] :hello")
|
||||
end
|
||||
|
||||
test "formats error_logger info message" do
|
||||
assert error_log(:info_msg, "hello", []) =~ msg("[info] hello")
|
||||
assert error_log(:info_msg, "~p~n", [:hello]) =~ msg("[info] :hello\n")
|
||||
assert error_log(:info_msg, "~p~n", [:hello]) =~ msg("[info] :hello")
|
||||
end
|
||||
|
||||
test "formats error_logger info report" do
|
||||
assert error_log(:info_report, "hello") =~ msg("[info] \"hello\"")
|
||||
assert error_log(:info_report, :hello) =~ msg("[info] :hello\n")
|
||||
assert error_log(:info_report, :hello) =~ msg("[info] :hello")
|
||||
assert error_log(:info_report, :special, :hello) == ""
|
||||
end
|
||||
|
||||
test "formats error_logger error message" do
|
||||
assert error_log(:error_msg, "hello", []) =~ msg("[error] hello")
|
||||
assert error_log(:error_msg, "~p~n", [:hello]) =~ msg("[error] :hello\n")
|
||||
assert error_log(:error_msg, "~p~n", [:hello]) =~ msg("[error] :hello")
|
||||
end
|
||||
|
||||
test "formats error_logger error report" do
|
||||
assert error_log(:error_report, "hello") =~ msg("[error] \"hello\"")
|
||||
assert error_log(:error_report, :hello) =~ msg("[error] :hello\n")
|
||||
assert error_log(:error_report, :hello) =~ msg("[error] :hello")
|
||||
assert error_log(:error_report, :special, :hello) == ""
|
||||
end
|
||||
|
||||
test "formats error_logger warning message" do
|
||||
# Warnings by default are logged as errors by Erlang
|
||||
assert error_log(:warning_msg, "hello", []) =~ msg("[error] hello")
|
||||
assert error_log(:warning_msg, "~p~n", [:hello]) =~ msg("[error] :hello\n")
|
||||
assert error_log(:warning_msg, "~p~n", [:hello]) =~ msg("[error] :hello")
|
||||
end
|
||||
|
||||
test "formats error_logger warning report" do
|
||||
# Warnings by default are logged as errors by Erlang
|
||||
assert error_log(:warning_report, "hello") =~ msg("[error] \"hello\"")
|
||||
assert error_log(:warning_report, :hello) =~ msg("[error] :hello\n")
|
||||
assert error_log(:warning_report, :hello) =~ msg("[error] :hello")
|
||||
assert error_log(:warning_report, :special, :hello) == ""
|
||||
end
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ defmodule Logger.FormatterTest do
|
||||
|
||||
test "compile/1 with nil" do
|
||||
assert compile(nil) ==
|
||||
[:time, " ", :metadata, "[", :level, "] ", :levelpad, :message, "\n"]
|
||||
["\n", :time, " ", :metadata, "[", :level, "] ", :levelpad, :message, "\n"]
|
||||
end
|
||||
|
||||
test "compile/1 with str" do
|
||||
|
||||
@@ -12,7 +12,7 @@ defmodule Logger.Case do
|
||||
end
|
||||
|
||||
def msg(msg) do
|
||||
~r/^\d\d\:\d\d\:\d\d\.\d\d\d #{Regex.escape(msg)}$/
|
||||
~r/\d\d\:\d\d\:\d\d\.\d\d\d #{Regex.escape(msg)}/
|
||||
end
|
||||
|
||||
def wait_for_handler(manager, handler) do
|
||||
|
||||
Reference in New Issue
Block a user