diff options
author | José Valim <jose.valim@plataformatec.com.br> | 2019-01-03 22:45:07 +0100 |
---|---|---|
committer | José Valim <jose.valim@plataformatec.com.br> | 2019-01-03 22:45:07 +0100 |
commit | a063a6eb2bb289b5b4592fa12629a26945436963 (patch) | |
tree | 2e6b93afdb30508aa49c17b0a3a4a7ab87d4c8d5 | |
parent | 14288e7f6e7a4f14a93e69e01c25e1f8a144a4bb (diff) | |
download | elixir-jv-better-logger.tar.gz |
Add a test for counter recoveryjv-better-logger
-rw-r--r-- | lib/logger/lib/logger/config.ex | 5 | ||||
-rw-r--r-- | lib/logger/test/logger_test.exs | 27 |
2 files changed, 20 insertions, 12 deletions
diff --git a/lib/logger/lib/logger/config.ex b/lib/logger/lib/logger/config.ex index 51e773618..1ae09fa4c 100644 --- a/lib/logger/lib/logger/config.ex +++ b/lib/logger/lib/logger/config.ex @@ -5,6 +5,7 @@ defmodule Logger.Config do @name __MODULE__ @table __MODULE__ @counter_pos 1 + @update_counter_message {__MODULE__, :update_counter} def configure(options) do :gen_event.call(Logger, @name, {:configure, options}) @@ -125,7 +126,7 @@ defmodule Logger.Config do {:ok, old, state} end - def handle_info({__MODULE__, :update_counter}, state) do + def handle_info(@update_counter_message, state) do state = update_counter(state, true) schedule_update_counter(state) {:ok, state} @@ -186,7 +187,7 @@ defmodule Logger.Config do end defp schedule_update_counter({_, _, _, discard_period}) do - Process.send_after(self(), {__MODULE__, :update_counter}, discard_period) + Process.send_after(self(), @update_counter_message, discard_period) end ## Counter Helpers diff --git a/lib/logger/test/logger_test.exs b/lib/logger/test/logger_test.exs index 038f86851..9a22b7da3 100644 --- a/lib/logger/test/logger_test.exs +++ b/lib/logger/test/logger_test.exs @@ -442,16 +442,23 @@ defmodule LoggerTest do test "logs when discarding messages" do assert :ok = Logger.configure(discard_threshold: 5) - assert capture_log(fn -> - :sys.suspend(Logger) - - for _ <- 1..10 do - Logger.warn("warning!") - end - - :sys.resume(Logger) - Logger.flush() - end) =~ ~r"Attempted to log \d+ messages, which is above :discard_threshold" + log = + capture_log(fn -> + :sys.suspend(Logger) + for _ <- 1..10, do: Logger.warn("warning!") + :sys.resume(Logger) + Logger.flush() + + # This is a private message but the simplest way to test this functionality + send(Logger, {Logger.Config, :update_counter}) + + # We need to flush twice. Once for the send and another for the log in send + Logger.flush() + Logger.flush() + end) + + assert log =~ ~r"\[warn\] Attempted to log \d+ messages, which is above :discard_threshold" + assert log =~ ~r"\[warn\] Attempted to log \d+ messages, which is below :discard_threshold" after :sys.resume(Logger) assert :ok = Logger.configure(discard_threshold: 500) |