2012-01-16 7 views
8

Nonostante la documentazione poco chiara e poco chiara e un'efficace How-To per i principianti, mi sono appassionato a PSGI e attualmente lo utilizzo in una delle mie applicazioni. Quello che vorrei sapere è come gestisco la registrazione su un'applicazione multi-nodo? Cosa è considerato "migliore pratica" per quanto riguarda la registrazione in PSGI?Registrazione PSGI (Perl)

+6

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

+0

Stai parlando solo dei log di accesso o del log in generale? –

risposta

5

Si consiglia di utilizzare Plack::Middleware::AccessLog per la registrazione dell'accesso e Plack::Middleware::LogDispatch per la registrazione personalizzata. Entrambi usano a loro volta il popolare modulo Log::Dispatch.

I documenti di LogDispatch Middleware attualmente non mostrano come utilizzare l'oggetto di log una volta impostato. Ecco un esempio:

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

Per affrontare il problema, multi-nodo, è quindi possibile utilizzare Log::Dispatch::Syslog che avrebbe inviato la registrazione a rsyslog, che potrebbe a sua volta per passare i dati di log su un altro server rsyslog. In questo modo, tutti i nodi possono accedere a un singolo server di registrazione centrale.

Con la flessibilità di Log :: Dispatch, si ha anche la possibilità di accedere sia localmente che da remoto per la ridondanza, se volete. I registri inviati a il server centrale potrebbero essere considerati primari e la registrazione eseguita localmente potrebbe essere considerata backup nel caso in cui il server di registro centrale sia inattivo per un po '.

utilizzo di un server log centrale ha diversi vantaggi:

  1. si puo 'grep' tuoi log attraverso l'intero cluster in un unico luogo.
  2. La rotazione e l'analisi del registro sono più semplici con un set di file di registro.
  3. È meglio prepararsi a scalare il cluster su e giù, poiché è possibile chiudere un nodo senza preoccuparsi di perdere la registrazione o mantenere il server attivo in modo tale che un processo cron overnight possa essere attivato per elaborare i registri.

Attualmente utilizzo Log :: Dispach e Rsyslog insieme in questo modo per gestire personalmente un cluster a più nodi.

Problemi correlati