问题标签 [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.
erlang - Lager - 解析转换
我已使用钢筋将 Lager 添加到我的应用程序中。它编译得很好,当我启动我的应用程序时,Lager 启动正常。但是,当我调用 lager:debug/1 时收到 undef 消息,它告诉我lager_transform
解析转换没有被拾取,但我已将以下内容添加到我的 rebar.config 中:
我当然是用钢筋编译的。
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)
到底。我没有看到error
lager.erl 中的函数。我猜它一定与-compile([{parse_transform, lager_transform}]).
. 不幸的是,我对解析转换还不够了解。
谢谢。
crash - Erlang 应用程序无法启动
当我尝试 _rel/bin/application_name 控制台时,我得到了这个:
(不确定是什么bad_return
,因为这个应用程序以前启动过)
我lager.app.src
的应用程序同时包含了 syntax_tools 和编译器(以及 goldrush、stdlib 和内核)。
但是,当我从香草 erl 提示符启动 lager 时,lager 会在我启动所有依赖项后启动。
我能得到一些帮助吗?我不确定我没有看到/错过什么。非常感谢期待!
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
erlang - 每个应用程序的更大日志级别
如何在 Lager 中为每个应用程序/库设置不同的日志级别?
例如,我想在控制台上查看调试消息,但仅限于我的应用程序,而不是我使用的任何库(例如 amqp_client)。
erlang - 如何仅在使用 erlang-lager 处于调试模式时登录?
在 Java 开发中,我们在记录时间/内存消耗操作之前进行了调试检查。
例如:
使用 Erlang Lager,我需要在记录之前做同样的检查吗?
如果是,如何检查?
erlang-otp - 如何使用 rebar3 和 lager 构建发布存档
我正在尝试使用 rebar3 构建 OTP 版本。在该项目下有多个应用程序。所有这些应用程序都将使用 lager 作为日志框架。所以我尝试了这样的 rebar.config
依赖喜欢这样
'rebar3 release' 看起来不错。没有显示错误。
但是,当我运行“rebar3 as prod tar”时,我发现存档中没有包含啤酒(和 goldrush)(即 myrel-0.0.1.tar.gz)。因此,当我使用命令“bin/myrel 控制台”在生产系统中运行它时,出现以下错误。
知道如何解决这个问题吗?
erlang - 如何在没有崩溃报告的情况下优雅地终止 gen_server
在我的 gen_server 中,我像这样终止它:
但仍然记录器将其打印为错误
代码按预期工作,但我不希望记录器将其打印出来作为其优雅的终止。
顺便说一句,我使用的是啤酒,但我认为删除它只会改变日志记录的格式。
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?