fix for logger configuration
authorAlexander Strizhakov <alex.strizhakov@gmail.com>
Fri, 17 Apr 2020 05:42:48 +0000 (08:42 +0300)
committerAlexander Strizhakov <alex.strizhakov@gmail.com>
Fri, 17 Apr 2020 05:42:48 +0000 (08:42 +0300)
lib/pleroma/config/transfer_task.ex
test/config/transfer_task_test.exs

index 3871e1cbb3fa075d619bebadf45a082ef050ee01..f4722f99d36acc510163779241f39f7e230dcec2 100644 (file)
@@ -122,7 +122,7 @@ defmodule Pleroma.Config.TransferTask do
     :ok = update_env(:logger, :backends, merged)
   end
 
-  defp configure({group, key, _, merged}) do
+  defp configure({_, key, _, merged}) when key in [:console, :ex_syslogger] do
     merged =
       if key == :console do
         put_in(merged[:format], merged[:format] <> "\n")
@@ -136,7 +136,12 @@ defmodule Pleroma.Config.TransferTask do
         else: key
 
     Logger.configure_backend(backend, merged)
-    :ok = update_env(:logger, group, merged)
+    :ok = update_env(:logger, key, merged)
+  end
+
+  defp configure({_, key, _, merged}) do
+    Logger.configure([{key, merged}])
+    :ok = update_env(:logger, key, merged)
   end
 
   defp update({group, key, value, merged}) do
index 0265a61560d9d24df391e1d64b3e4e880ab6934c..00db0b68683a70d86b190563e3abd51eeb226a10 100644 (file)
@@ -16,6 +16,7 @@ defmodule Pleroma.Config.TransferTaskTest do
     refute Application.get_env(:pleroma, :test_key)
     refute Application.get_env(:idna, :test_key)
     refute Application.get_env(:quack, :test_key)
+    initial = Application.get_env(:logger, :level)
 
     ConfigDB.create(%{
       group: ":pleroma",
@@ -35,16 +36,20 @@ defmodule Pleroma.Config.TransferTaskTest do
       value: [:test_value1, :test_value2]
     })
 
+    ConfigDB.create(%{group: ":logger", key: ":level", value: :debug})
+
     TransferTask.start_link([])
 
     assert Application.get_env(:pleroma, :test_key) == [live: 2, com: 3]
     assert Application.get_env(:idna, :test_key) == [live: 15, com: 35]
     assert Application.get_env(:quack, :test_key) == [:test_value1, :test_value2]
+    assert Application.get_env(:logger, :level) == :debug
 
     on_exit(fn ->
       Application.delete_env(:pleroma, :test_key)
       Application.delete_env(:idna, :test_key)
       Application.delete_env(:quack, :test_key)
+      Application.put_env(:logger, :level, initial)
     end)
   end
 
@@ -78,8 +83,8 @@ defmodule Pleroma.Config.TransferTaskTest do
   end
 
   test "transfer config values with full subkey update" do
-    emoji = Application.get_env(:pleroma, :emoji)
-    assets = Application.get_env(:pleroma, :assets)
+    clear_config(:emoji)
+    clear_config(:assets)
 
     ConfigDB.create(%{
       group: ":pleroma",
@@ -99,11 +104,6 @@ defmodule Pleroma.Config.TransferTaskTest do
     assert emoji_env[:groups] == [a: 1, b: 2]
     assets_env = Application.get_env(:pleroma, :assets)
     assert assets_env[:mascots] == [a: 1, b: 2]
-
-    on_exit(fn ->
-      Application.put_env(:pleroma, :emoji, emoji)
-      Application.put_env(:pleroma, :assets, assets)
-    end)
   end
 
   describe "pleroma restart" do
@@ -112,8 +112,7 @@ defmodule Pleroma.Config.TransferTaskTest do
     end
 
     test "don't restart if no reboot time settings were changed" do
-      emoji = Application.get_env(:pleroma, :emoji)
-      on_exit(fn -> Application.put_env(:pleroma, :emoji, emoji) end)
+      clear_config(:emoji)
 
       ConfigDB.create(%{
         group: ":pleroma",
@@ -128,8 +127,7 @@ defmodule Pleroma.Config.TransferTaskTest do
     end
 
     test "on reboot time key" do
-      chat = Application.get_env(:pleroma, :chat)
-      on_exit(fn -> Application.put_env(:pleroma, :chat, chat) end)
+      clear_config(:chat)
 
       ConfigDB.create(%{
         group: ":pleroma",
@@ -141,8 +139,7 @@ defmodule Pleroma.Config.TransferTaskTest do
     end
 
     test "on reboot time subkey" do
-      captcha = Application.get_env(:pleroma, Pleroma.Captcha)
-      on_exit(fn -> Application.put_env(:pleroma, Pleroma.Captcha, captcha) end)
+      clear_config(Pleroma.Captcha)
 
       ConfigDB.create(%{
         group: ":pleroma",
@@ -154,13 +151,8 @@ defmodule Pleroma.Config.TransferTaskTest do
     end
 
     test "don't restart pleroma on reboot time key and subkey if there is false flag" do
-      chat = Application.get_env(:pleroma, :chat)
-      captcha = Application.get_env(:pleroma, Pleroma.Captcha)
-
-      on_exit(fn ->
-        Application.put_env(:pleroma, :chat, chat)
-        Application.put_env(:pleroma, Pleroma.Captcha, captcha)
-      end)
+      clear_config(:chat)
+      clear_config(Pleroma.Captcha)
 
       ConfigDB.create(%{
         group: ":pleroma",