From a3e3b910040913c9009f1bf27a98d9c35fb8fef2 Mon Sep 17 00:00:00 2001 From: Inhji Date: Fri, 9 Jun 2023 20:37:29 +0200 Subject: [PATCH] add file logging --- config/runtime.exs | 20 ++++++++++++++++++++ lib/chiya_web/endpoint.ex | 1 + lib/chiya_web/indie/micropub_handler.ex | 2 +- mix.exs | 6 ++---- mix.lock | 3 ++- 5 files changed, 26 insertions(+), 6 deletions(-) diff --git a/config/runtime.exs b/config/runtime.exs index 141fac3..0840b83 100644 --- a/config/runtime.exs +++ b/config/runtime.exs @@ -73,6 +73,26 @@ if config_env() == :prod do config :waffle, storage_dir_prefix: upload_dir + log_directory = + System.get_env("LOG_DIR") || + raise """ + environment variable LOG_DIR is missing. + It should look like: /path/to/chiya/logs + """ + + config :logger, + backends: [{LoggerFileBackend, :info_log}, {LoggerFileBackend, :error_log}] + + config :logger, :info_log, + path: Path.join(log_directory, "chiya-info.log"), + level: :info, + format: "[$date] [$time] [$level] $message\n" + + config :logger, :error_log, + path: Path.join(log_directory, "chiya-error.log"), + level: :error, + format: "[$date] [$time] [$level] $message\n" + # ## SSL Support # # To get SSL working, you will need to add the `https` key diff --git a/lib/chiya_web/endpoint.ex b/lib/chiya_web/endpoint.ex index 2d909d1..d937024 100644 --- a/lib/chiya_web/endpoint.ex +++ b/lib/chiya_web/endpoint.ex @@ -39,6 +39,7 @@ defmodule ChiyaWeb.Endpoint do end plug CORSPlug + plug Phoenix.LiveDashboard.RequestLogger, param_key: "request_logger", cookie_key: "request_logger" diff --git a/lib/chiya_web/indie/micropub_handler.ex b/lib/chiya_web/indie/micropub_handler.ex index 732cdad..80807ce 100644 --- a/lib/chiya_web/indie/micropub_handler.ex +++ b/lib/chiya_web/indie/micropub_handler.ex @@ -15,7 +15,7 @@ defmodule ChiyaWeb.Indie.MicropubHandler do {:ok, post_type} <- Props.get_post_type(properties), {:ok, note_attrs} <- get_attrs(type, post_type, properties), {:ok, note} <- Chiya.Notes.create_note(note_attrs) do - Logger.info("Note created!") + Logger.info("Note created!") {:ok, :created, Chiya.Notes.Note.note_url(note)} else error -> diff --git a/mix.exs b/mix.exs index a7555c4..94a06c2 100644 --- a/mix.exs +++ b/mix.exs @@ -41,6 +41,7 @@ defmodule Chiya.MixProject do {:floki, ">= 0.30.0", only: :test}, {:gettext, "~> 0.22"}, {:jason, "~> 1.2"}, + {:logger_file_backend, "~> 0.0.13"}, {:oban, "~> 2.14"}, {:phoenix, "~> 1.7.1"}, {:phoenix_ecto, "~> 4.4"}, @@ -49,10 +50,7 @@ defmodule Chiya.MixProject do {:phoenix_live_reload, "~> 1.2", only: :dev}, {:phoenix_live_view, "~> 0.19"}, {:plug_cowboy, "~> 2.5"}, - {:plug_micropub, - git: "https://git.inhji.de/inhji/plug_micropub", - branch: "main" - }, + {:plug_micropub, git: "https://git.inhji.de/inhji/plug_micropub", ref: "main"}, {:postgrex, ">= 0.0.0"}, {:swoosh, "~> 1.3"}, {:tailwind, "~> 0.2.0", runtime: Mix.env() == :dev}, diff --git a/mix.lock b/mix.lock index 77fc394..12f4037 100644 --- a/mix.lock +++ b/mix.lock @@ -26,6 +26,7 @@ "hpax": {:hex, :hpax, "0.1.2", "09a75600d9d8bbd064cdd741f21fc06fc1f4cf3d0fcc335e5aa19be1a7235c84", [:mix], [], "hexpm", "2c87843d5a23f5f16748ebe77969880e29809580efdaccd615cd3bed628a8c13"}, "idna": {:hex, :idna, "6.1.1", "8a63070e9f7d0c62eb9d9fcb360a7de382448200fbbd1b106cc96d3d8099df8d", [:rebar3], [{:unicode_util_compat, "~> 0.7.0", [hex: :unicode_util_compat, repo: "hexpm", optional: false]}], "hexpm", "92376eb7894412ed19ac475e4a86f7b413c1b9fbb5bd16dccd57934157944cea"}, "jason": {:hex, :jason, "1.4.0", "e855647bc964a44e2f67df589ccf49105ae039d4179db7f6271dfd3843dc27e6", [:mix], [{:decimal, "~> 1.0 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "79a3791085b2a0f743ca04cec0f7be26443738779d09302e01318f97bdb82121"}, + "logger_file_backend": {:hex, :logger_file_backend, "0.0.13", "df07b14970e9ac1f57362985d76e6f24e3e1ab05c248055b7d223976881977c2", [:mix], [], "hexpm", "71a453a7e6e899ae4549fb147b1c6621f4233f8f48f58ca10a64ec67b6c50018"}, "metrics": {:hex, :metrics, "1.0.1", "25f094dea2cda98213cecc3aeff09e940299d950904393b2a29d191c346a8486", [:rebar3], [], "hexpm", "69b09adddc4f74a40716ae54d140f93beb0fb8978d8636eaded0c31b6f099f16"}, "mime": {:hex, :mime, "2.0.4", "94b41d7cd981a5c7acefecdf9f2667df43f19067279e1518314cc01650a8370d", [:mix], [], "hexpm", "14932baeb3cde66f1f0b3cffb42b7c5bbaa92af5335e2d8848c668a654a9d8bf"}, "mimerl": {:hex, :mimerl, "1.2.0", "67e2d3f571088d5cfd3e550c383094b47159f3eee8ffa08e64106cdf5e981be3", [:rebar3], [], "hexpm", "f278585650aa581986264638ebf698f8bb19df297f66ad91b18910dfc6e19323"}, @@ -45,7 +46,7 @@ "plug": {:hex, :plug, "1.14.2", "cff7d4ec45b4ae176a227acd94a7ab536d9b37b942c8e8fa6dfc0fff98ff4d80", [:mix], [{:mime, "~> 1.0 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:plug_crypto, "~> 1.1.1 or ~> 1.2", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.3 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "842fc50187e13cf4ac3b253d47d9474ed6c296a8732752835ce4a86acdf68d13"}, "plug_cowboy": {:hex, :plug_cowboy, "2.6.1", "9a3bbfceeb65eff5f39dab529e5cd79137ac36e913c02067dba3963a26efe9b2", [:mix], [{:cowboy, "~> 2.7", [hex: :cowboy, repo: "hexpm", optional: false]}, {:cowboy_telemetry, "~> 0.3", [hex: :cowboy_telemetry, repo: "hexpm", optional: false]}, {:plug, "~> 1.14", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "de36e1a21f451a18b790f37765db198075c25875c64834bcc82d90b309eb6613"}, "plug_crypto": {:hex, :plug_crypto, "1.2.5", "918772575e48e81e455818229bf719d4ab4181fcbf7f85b68a35620f78d89ced", [:mix], [], "hexpm", "26549a1d6345e2172eb1c233866756ae44a9609bd33ee6f99147ab3fd87fd842"}, - "plug_micropub": {:git, "https://git.inhji.de/inhji/plug_micropub", "5fbfd82ee7f51b40c38aecb0fc0de06270c484d9", [branch: "main"]}, + "plug_micropub": {:git, "https://git.inhji.de/inhji/plug_micropub", "874eed58d73daaef48302b63dd59d61f3527dad9", [ref: "main"]}, "postgrex": {:hex, :postgrex, "0.16.5", "fcc4035cc90e23933c5d69a9cd686e329469446ef7abba2cf70f08e2c4b69810", [:mix], [{:connection, "~> 1.1", [hex: :connection, repo: "hexpm", optional: false]}, {:db_connection, "~> 2.1", [hex: :db_connection, repo: "hexpm", optional: false]}, {:decimal, "~> 1.5 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:table, "~> 0.1.0", [hex: :table, repo: "hexpm", optional: true]}], "hexpm", "edead639dc6e882618c01d8fc891214c481ab9a3788dfe38dd5e37fd1d5fb2e8"}, "ranch": {:hex, :ranch, "1.8.0", "8c7a100a139fd57f17327b6413e4167ac559fbc04ca7448e9be9057311597a1d", [:make, :rebar3], [], "hexpm", "49fbcfd3682fab1f5d109351b61257676da1a2fdbe295904176d5e521a2ddfe5"}, "slugger": {:hex, :slugger, "0.3.0", "efc667ab99eee19a48913ccf3d038b1fb9f165fa4fbf093be898b8099e61b6ed", [:mix], [], "hexpm", "20d0ded0e712605d1eae6c5b4889581c3460d92623a930ddda91e0e609b5afba"},