0

" Lager " (ロガー アプリケーション)を使用しようとしています。Lager は、メイン アプリケーション モジュール「A」から開始されました

以下は、.app ファイルでのラガーの指定方法です。

{application, myapp,
 [
  {description, ""},
  {vsn, "1"},
  {registered, []},
  {applications, [kernel, stdlib]},
  {mod, { ontoq, []}},
  {env, [
          {lager, [
            {handlers, [
              {lager_console_backend, info},
              {lager_file_backend, [{file, "error.log"}, {level, error}]},
              {lager_file_backend, [{file, "console.log"}, {level, info}]}
            ]}
          ]}
        ]
  }
 ]}.

アプリケーション「A」の開始機能からラガーを開始します。

start(_StartType, _StartArgs) ->
  random:seed(erlang:now()),
  lager:start(),
  lager:info("here is something to the log ~p", ["SomeString"]),
  start_other_apps_that_call_module_B().

プレーンな erlang モジュール (アプリケーションなし) だけを含む別のプロジェクト モジュール "B" を作成しました。そこから、私の関数のいくつかは、lager を使用してログを書き込もうとします。

lager:info("here is something to the log ~p", ["SomeString"]),

上記はどういうわけか失敗します。「lager」は、ErlangVM で実行されている登録済みアプリケーションを参照するアトムであると予想していました。どういうわけか、そうではないようです。これは失敗メッセージです:

{undef,[{lager,info,["here is something to the log ~p",[["Something"]]],[]},{

プロセス ツリー内でアプリケーションの可視性を制限するものはありますか

4

1 に答える 1