1

Catalyst アプリでは、Log4perl の構成ファイルの場所を指定する必要があります。私が見つけたすべての例は、コードからそれを行うべきであることを示唆しています。ただし、アプリの構成ファイルで指定できるようにしたいと考えています。これにより、環境ごとに異なるログ構成を使用し、それらすべてを 1 つのファイルから管理できるようになります。また、アプリの構成ファイルからログ レベルを設定できるようにしたいと考えています。

ただし、アプリ構成ファイルからロガーを構成する文書化された方法はないようです。構文の複数のバリエーションを試しましたが、Catalyst によって検出されたものはありませんでした。また、モジュール コードの実行時に構成がまだ利用できないため、MyApp.pm (メイン アプリ モジュール) から正しい構成ファイル名を設定することもできません。

ロガーの初期化コードをデバッグしても役に立ちませんでした。私が現在検討している唯一の現実的な方法requireは、必要な構成を含む MyApp.pm から構成ファイルを作成することです。

したがって、質問は次のとおりです。

  1. Catalyst 構成ファイルから Log4perl 構成ファイルの場所を指定する方法はありますか?
  2. 構成ファイルからログ レベルを指定する方法はありますか?
4

1 に答える 1

1

私は十分にグーグル検索したと思っていましたが、どうやらそうではなかったようです。

__PACKAGE__->setup();
__PACKAGE__->log(Log::Log4perl::Catalyst->new(__PACKAGE__->path_to(__PACKAGE__->config->{Log}->{config_file})->stringify));

(参照http://www.gossamer-threads.com/lists/catalyst/users/31271 )。

ログ レベルについては、実際の Log4perl 構成ファイルで定義されています。

于 2015-07-08T15:24:09.007 に答える