初心者のためにはあまりにも不明瞭で不明瞭な文書や効果的なハウツーにもかかわらず、私はPSGIのように成長し、現在私のアプリケーションの1つで使用しています。私が知りたいことは、マルチノードアプリケーション全体のログをどのように管理するかです。 PSGIのログインに関する「ベストプラクティス」とは何でしょうか?PSGI logging(Perl)
8
A
答えて
5
ロギングアクセスにはPlack::Middleware::AccessLog、カスタムロギングにはPlack::Middleware::LogDispatchを使用することをお勧めします。 どちらも人気のLog::Dispatchモジュールを使用します。
LogDispatchミドルウェアのドキュメントでは、一度ログオブジェクトを設定すると、 の使用方法が示されていません。
my $app = sub {
my $env = shift;
$env->{'psgix.logger'}->({ level => "debug", message => "This is debug" });
return [ 200, [], [] ];
};
マルチノードの懸念に対処するために、あなたがして使用することができLog::Dispatch::Syslog今度は別のrsyslogのサーバにログデータを渡すことができたrsyslogへのロギングを送信します:ここでは例です。このようにして、すべてのノードが単一の中央ロギングサーバーにログを記録できます。
Log :: Dispatchの柔軟性により、必要に応じて をローカルとリモートの両方にロギングするオプションもあります。中央サーバが に送信されたログはプライマリと見なすことができ、 ローカルで実行されたログは、中央ログサーバが少し下に である場合にバックアップと見なすことができます。中央のログサーバを使用して
はいくつかの利点があります。
- あなたは一つの場所にクラスタ全体でログを「grepする」ことができます。
- ログのローテーションと分析は、1セットのログファイルで簡単になります。
- ログを失うことを心配することなくノードをシャットダウンしたり、夜間のcronジョブがログを処理するために起動できるようにサーバーを保持したりすることができます。
私は現在、このようにLog :: DispachとRsyslogを併用して、マルチノードクラスタを自分で管理しています。
関連する問題
- 1. Selenium Logging
- 2. Javascript Logging
- 3. Glassfish Logging
- 4. Microsoft.SharePoint.Linq.DataContext Logging
- 5. Angular2 Logging
- 6. Apache commons logging configuration
- 7. Lombok @ slf4j not logging
- 8. Xamarin Android C#Logging
- 9. Log4j2 logging empty ThreadContext
- 10. Logging API for AS3
- 11. Django Celery Task Logging
- 12. Selenium IEDriverServer logging
- 13. Monolog not logging context
- 14. Hibernate Statistics Logging
- 15. logging verbosity mysql 5.7
- 16. Wildfly disabling logging subsystem
- 17. Django + fastcgi + nginx logging
- 18. axis2 soap logging
- 19. Java Application + Logging
- 20. log4j、foreign logging
- 21. Silence slick logging
- 22. log4j logging twice
- 23. Phusion Passenger Not Logging
- 24. django/python logging
- 25. Logging MSSQL Inserts
- 26. Python 2.7 sqlite3 logging
[Plack :: Middleware :: AccessLog](http://p3rl.org/Plack::Middleware::AccessLog) –
アクセスログだけではなく、一般的にログインしていますか? –