如何在elixir项目中设置lager
我想从长生不老药项目使用 我当前的mix.exs如下如何在elixir项目中设置lager,elixir,lager,Elixir,Lager,我想从长生不老药项目使用 我当前的mix.exs如下 def application do [erl_opts: [parse_transform: "lager_transform"]] end defp deps do [{:lager, github: "basho/lager"}] end 我想使用lager将日志输出到文件。 如何设置日志文件路径? (启动应用程序后是否可以更改此文件路径?) 并且,我想使用 如何设置上述配置?这里有一个关于Elixir啤酒的最低设置: #
def application do
[erl_opts: [parse_transform: "lager_transform"]]
end
defp deps do
[{:lager, github: "basho/lager"}]
end
我想使用lager将日志输出到文件。
如何设置日志文件路径?
(启动应用程序后是否可以更改此文件路径?)
并且,我想使用
如何设置上述配置?这里有一个关于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\u root
选项将允许您在编译时设置日志目录。我已经重新创建了上面的内容,您应该能够从这里开始,并指定所需的配置选项
在运行时无法更改日志目录和/或日志级别,我认为这是lager的缺点之一。我没有跟踪方面的经验,但上面的示例应该可以让您设置必要的配置选项。谢谢您的回复。但是,下面的代码会引发UndefinedFunctionError<代码>:lager.error('Some message')我应该启动lager吗?我尝试使用
:lager.start
,但无法工作…在启动应用程序时,会显示以下错误消息<代码>2015-10-27 17:21:15.671[错误]主管“Elixir.Logger.Supervisor”的子项未定义以“Elixir.Logger.Watcher”开头:退出时的Watcher(错误记录程序,“Elixir.Logger.ErrorHandler”,{true,false,500},link),原因正常,上下文中的子项终止看起来您也在使用Elixir Logger?我认为最好坚持使用一种日志记录机制。您不需要手动启动lager,如果您将其放在mix.exs的应用程序列表中,它将为您完成。我从mix.exs上的应用程序中注释了logger。(:logger,
)。但是,:lager.error('Some message')
raise(UndefinedFunctionError)undefined function::lager.error/1
…要记录错误,请执行以下操作::lager.log(:error,self,“message”)