2012-01-16 23 views
8

Yeni başlayanlar için oldukça yetersiz ve belirsiz belgelere ve etkili bir How-To'ya rağmen, PSGI'dan hoşlandım ve şu anda uygulamalardan birinde kullanıyorum. Bilmek istediğim, çok düğümlü bir uygulamada oturum açmayı nasıl yönetirim? PSGI'da oturum açma ile ilgili "en iyi uygulama" olarak kabul edilen nedir?PSGI günlüğü (Perl)

+6

[Plack :: Middleware :: AccessLog] (http://p3rl.org/Plack::Middleware::AccessLog) –

+0

Sadece erişim günlüklerinden mi yoksa genel olarak mı oturum açıyorsunuz? –

cevap

5

Günlük kaydı için Plack::Middleware::AccessLog ve özel günlüğe kaydetme için Plack::Middleware::LogDispatch kullanılmasını öneririz. Her ikisi de sırayla popüler Log::Dispatch modülünü kullanır.

LogDispatch Middleware belgeleri şu anda ayarlandıktan sonra günlük nesnesini nasıl kullanacağınızı göstermemektedir.

my $app = sub { 
    my $env = shift; 
    $env->{'psgix.logger'}->({ level => "debug", message => "This is debug" }); 
    return [ 200, [], [] ]; 
}; 

çok düğümlü sorunu çözmek için, daha sonra kullanabilirsiniz Log::Dispatch::Syslog sırayla başka rsyslog sunucuya günlük verileri aktarmak için hangi rsyslog için günlüğü göndermek olacaktır: İşte bir örnek. Bu şekilde, tüm düğümler tek bir merkezi kayıt sunucusuna giriş yapabilir.

Log :: Dispatch'ın esnekliği ile, isterseniz yerel olarak ve artık yedek için uzaktan oturum açma seçeneğiniz de vardır. Merkezi sunucu 'a gönderilen günlükler birincil olarak düşünülebilir ve merkezi günlük sunucusunun bir bit için olması durumunda yerel olarak kayıtlarının yerel olarak yedeklenmesi düşünülebilir. merkezi bir log sunucusu kullanma

birçok avantajı vardır:

  1. yapabilirsiniz tek bir yerde tüm küme çapında 'grep' loglarınız.
  2. Günlük döndürme ve analiz, bir dizi günlük dosyası ile daha basittir.
  3. Kümenizi yukarı ve aşağı ölçeklendirmeye hazır olursunuz; çünkü günlüğünüzü kaybetme endişesi olmadan bir düğümü kapatabilir veya sunucuyu bir gecede cron işini günlükleri işlemek için tetikleyebilir.

Şu anda çok düğümlü bir kümeyi kendim yönetmek için şu anda Log :: Dispach ve Rsyslog'u birlikte kullanıyorum.