问题标签 [lager]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1106 浏览

erlang - Lager - 解析转换

我已使用钢筋将 Lager 添加到我的应用程序中。它编译得很好,当我启动我的应用程序时,Lager 启动正常。但是,当我调用 lager:debug/1 时收到 undef 消息,它告诉我lager_transform解析转换没有被拾取,但我已将以下内容添加到我的 rebar.config 中:

我当然是用钢筋编译的。

0 投票
1 回答
57 浏览

erlang - ~1024p 有时如何进入我的较大日志?

我在 erlang 应用程序中使用 lager,偶尔会有如下日志语句:

?log_error("failed to create reward instance: ~1024p", Reason)

其中原因是从先前的函数调用返回的。据我了解,~1024p 应该变成任何原因,所以即使原因是一个空字符串,我也会期望

failed to create reward instance: ""

但有时我得到

failed to create reward instance: ~1024p

我只是想知道是否有人可以解释这种行为。提前致谢。

编辑: ?log_error 的宏定义是:

-define(log_error(Message, Arguments), ?do_log_error(Message, Arguments) ).

-define(do_log_error(Message, Arguments), ?log(error, Message, Arguments)).

-define(log(Level, Message, Arguments), ok = lager:Level(Message, Arguments)).

这意味着?log_debug("...", Reason)调用lager:error("...",Reason)到底。我没有看到errorlager.erl 中的函数。我猜它一定与-compile([{parse_transform, lager_transform}]).. 不幸的是,我对解析转换还不够了解。

谢谢。

0 投票
0 回答
364 浏览

crash - Erlang 应用程序无法启动

当我尝试 _rel/bin/application_name 控制台时,我得到了这个:

(不确定是什么bad_return,因为这个应用程序以前启动过)

lager.app.src的应用程序同时包含了 syntax_tools 和编译器(以及 goldrush、stdlib 和内核)。

但是,当我从香草 erl 提示符启动 lager 时,lager 会在我启动所有依赖项后启动。

我能得到一些帮助吗?我不确定我没有看到/错过什么。非常感谢期待!

0 投票
1 回答
74 浏览

ejabberd - ejabberd odbc 错误 + 无法找出确切的来源

我的 ejabberd 服务器经常崩溃,它与 ODBC 模块有些相关,但我无法理解这个问题。以下是日志。谁能帮我解释一下?我在下面复制粘贴了一些消息。

=错误报告==== 2015 年 10 月 14 日::00:27:51 === ** 状态机 <0.27422.5> 终止 ** 最后一条消息是 {'$gen_sync_event', {<0.27896.5> ,#Ref<0.0.10.246367>}, {sql_cmd, {sql_query,<<"SELECT 1;">>}, {1444,782471,512104}}} ** 当状态 == session_established ** 数据 == {state ,<0.27423.5>,odbc,30000,<<"abchost.com">>,1000, {0,{[],[]}}} ** 终止原因 = ** {function_clause,[{odbc, sql_query, [<0.27423.5>,<<"SELECT 1;">>,59000], [{file,"odbc.erl"},{line,183}]}, {ejabberd_odbc,sql_query_internal,1, [{文件,"src/ejabberd_odbc.erl"}, {line,468}]}, {ejabberd_odbc,run_sql_cmd,4, [{file,"src/ejabberd_odbc.erl"}, {line,374}]}, {p1_fsm, handle_msg,10, [{file,"src/p1_fsm.erl"},{line,582}]}, {proc_lib,init_p_do_apply,3, [{file,"proc_lib.erl"},{line,237}]}]}

00:27:51.573 [错误] 崩溃报告进程 <0.27434.5> 与 0 个邻居退出,原因是:没有与 odbc:sql_query(<0.27435.5>, <<"SELECT 1;">>, 59000) 行匹配的函数子句183 in p1_fsm:terminate/8 line 760

00:27:53.965 [错误] gen_fsm <0.27439.5> 在状态 session_established 中终止,原因是:没有函数子句匹配 odbc:sql_query(<0.27442.5>, <<"SELECT 1;">>, 59000) 第 183 行

=错误报告==== 14-Oct-2015::00:27:51 === ** 通用服务器 <0.27435.5> 终止 ** 最后一条消息是 {'DOWN',#Ref<0.0.10.239386> ,进程,<0.27434.5>, {function_clause, [{odbc,sql_query, [<0.27435.5>,<<"SELECT 1;">>,59000], [{file,"odbc.erl"},{ line,183}]}, {ejabberd_odbc,sql_query_internal,1, [{file,"src/ejabberd_odbc.erl"}, {line,468}]}, {ejabberd_odbc,run_sql_cmd,4, [{file,"src/ejabberd_odbc .erl"}, {line,374}]}, {p1_fsm,handle_msg,10, [{file,"src/p1_fsm.erl"},{line,582}]}, {proc_lib,init_p_do_apply,3, [{ file,"proc_lib.erl"},{line,237}]}]}} ** 当服务器状态 == {state,#Port<0.2314388>,undefined,<0.27434.5>, undefined,on,false,false ,off,connected, undefined,0, [#Port<0.2314379>,#Port<0.2314376>], #Port<0.2314386>,#Port<0.2314366>} ** 终止原因 == ** {已停止, {'EXIT',<0.27434.5>, {function_clause, [{odbc,sql_query, [<0.27435.5>,<< "SELECT 1;">>,59000], [{file,"odbc.erl"},{line,183}]}, {ejabberd_odbc,sql_query_internal,1, [{file,"src/ejabberd_odbc.erl"}, {line,468}]}, {ejabberd_odbc,run_sql_cmd,4, [{file,"src/ejabberd_odbc.erl"},{line,374}]}, {p1_fsm,handle_msg,10,[{file,"src/ p1_fsm.erl"},{line,582}]}, {proc_lib,init_p_do_apply,3, [{file,"proc_lib.erl"},{line,237}]}]}}}sql_query_internal,1, [{file,"src/ejabberd_odbc.erl"},{line,468}]}, {ejabberd_odbc,run_sql_cmd,4, [{file,"src/ejabberd_odbc.erl"},{line,374} ]}, {p1_fsm,handle_msg,10,[{file,"src/p1_fsm.erl"},{line,582}]}, {proc_lib,init_p_do_apply,3, [{file,"proc_lib.erl"},{行,237}]}]}}}sql_query_internal,1, [{file,"src/ejabberd_odbc.erl"},{line,468}]}, {ejabberd_odbc,run_sql_cmd,4, [{file,"src/ejabberd_odbc.erl"},{line,374} ]}, {p1_fsm,handle_msg,10,[{file,"src/p1_fsm.erl"},{line,582}]}, {proc_lib,init_p_do_apply,3, [{file,"proc_lib.erl"},{行,237}]}]}}}

00:27:51.552 [错误] 主管 odbc_sup 有子 [] 以 {odbc,start_link_sup,undefined} 在 <0.27432.5> 退出,原因是 {stopped,{'EXIT',<0.27429.5>,{function_clause,[ {odbc,sql_query,[<0.27432.5>,<<"SELECT 1;">>,59000],[{file,"odbc.erl"},{line,183}]},{ejabberd_odbc,sql_query_internal,1 ,[{file,"src/ejabberd_odbc.erl"},{line,468}]},{ejabberd_odbc,run_sql_cmd,4,[{file,"src/ejabberd_odbc.erl"},{line,374}]}, {p1_fsm,handle_msg,10,[{file,"src/p1_fsm.erl"},{line,582}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,237 }]}]}}} 在上下文 child_terminated

0 投票
1 回答
1633 浏览

elixir - 如何在 elixir 项目上设置啤酒

我想使用来自 elixir 项目的啤酒。

我目前的 mix.exs 正在关注。

我想使用 lager 将日志输出到文件。如何设置日志文件路径?(我可以在启动应用程序后更改此文件路径吗?)

而且,我想通过使用跟踪来划分日志文件 如何设置上述配置?

0 投票
1 回答
304 浏览

erlang - 每个应用程序的更大日志级别

如何在 Lager 中为每个应用程序/库设置不同的日志级别?

例如,我想在控制台上查看调试消息,但仅限于我的应用程序,而不是我使用的任何库(例如 amqp_client)。

0 投票
1 回答
453 浏览

erlang - 如何仅在使用 erlang-lager 处于调试模式时登录?

在 Java 开发中,我们在记录时间/内存消耗操作之前进行了调试检查。

例如:

使用 Erlang Lager,我需要在记录之前做同样的检查吗?

如果是,如何检查?

0 投票
0 回答
285 浏览

erlang-otp - 如何使用 rebar3 和 lager 构建发布存档

我正在尝试使用 rebar3 构建 OTP 版本。在该项目下有多个应用程序。所有这些应用程序都将使用 lager 作为日志框架。所以我尝试了这样的 rebar.config

依赖喜欢这样

'rebar3 release' 看起来不错。没有显示错误。

但是,当我运行“rebar3 as prod tar”时,我发现存档中没有包含啤酒(和 goldrush)(即 myrel-0.0.1.tar.gz)。因此,当我使用命令“bin/myrel 控制台”在生产系统中运行它时,出现以下错误。

知道如何解决这个问题吗?

0 投票
1 回答
842 浏览

erlang - 如何在没有崩溃报告的情况下优雅地终止 gen_server

在我的 gen_server 中,我像这样终止它:

但仍然记录器将其打印为错误

代码按预期工作,但我不希望记录器将其打印出来作为其优雅的终止。

顺便说一句,我使用的是啤酒,但我认为删除它只会改变日志记录的格式。

0 投票
0 回答
50 浏览

erlang - error happen, when using lager's trace?

when using lager's 'trace' as follows:

'lager_test_a' is gen_server module, and it is terminated, the reason is as follows:

But I can't find lager_default_tracer.beam and source file. I think that it may be ets's 'table 40984' doesn't exist, and the error happens.

But how to solve the problem?