Как настроить лагер в проекте эликсир

Я хотел бы использовать лагер из проекта эликсир.

Мой текущий mix.exs следующий.

def application do
  [erl_opts: [parse_transform: "lager_transform"]]
end

defp deps do
  [{:lager, github: "basho/lager"}]
end

Я хотел бы вывести журнал в файл с помощью лагера. Как я могу установить путь к файлу журнала? (Могу ли я изменить этот путь к файлу после запуска приложения?)

И я хотел бы разделить файл журнала с помощью трассировки. Как я могу настроить вышеуказанную конфигурацию?

1 ответ

Решение

Вот минимальная настройка для лагера с Elixir:

# mix.exs
def application do
  [
    applications: [:lager],
    erl_opts: [parse_transform: "lager_transform"]
  ]
end

defp deps do
  [{:lager, github: "basho/lager"}]
end

# config/config.exs
config :lager,
  log_root: '/var/log/hello',
  handlers: [
    lager_console_backend: :info,
    lager_file_backend: [file: "error.log", level: :error],
    lager_file_backend: [file: "console.log", level: :info]
  ]

Как видите, log_root опция позволит вам установить каталог журналов во время компиляции. Я воссоздал пример конфигурации из документации по lager выше, вы можете взять ее отсюда и указать нужные параметры конфигурации.

Нет способа изменить каталог журнала и / или уровень журнала во время выполнения, что, я считаю, является одним из недостатков лагера. У меня нет опыта в трассировке, но приведенный выше пример должен позволить вам установить необходимые параметры конфигурации.

Другие вопросы по тегам