summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJosé Valim <jose.valim@plataformatec.com.br>2019-01-03 22:45:07 +0100
committerJosé Valim <jose.valim@plataformatec.com.br>2019-01-03 22:45:07 +0100
commita063a6eb2bb289b5b4592fa12629a26945436963 (patch)
tree2e6b93afdb30508aa49c17b0a3a4a7ab87d4c8d5
parent14288e7f6e7a4f14a93e69e01c25e1f8a144a4bb (diff)
downloadelixir-jv-better-logger.tar.gz
Add a test for counter recoveryjv-better-logger
-rw-r--r--lib/logger/lib/logger/config.ex5
-rw-r--r--lib/logger/test/logger_test.exs27
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)