尽管文档相当少且不清楚,并且对于初学者来说是有效的方法,但我已经逐渐喜欢PSGI,并且我目前正在其中一个应用程序中使用它.我想知道的是如何在多节点应用程序中管理日志记录?有关登录PSGI的"最佳实践"是什么?
我建议使用Plack :: Middleware :: AccessLog进行日志访问,使用Plack :: Middleware :: LogDispatch进行自定义日志记录.它们又使用流行的Log :: Dispatch模块.
LogDispatch Middleware文档目前不会向您显示如何在设置日志对象后使用它.这是一个例子:
my $app = sub {
my $env = shift;
$env->{'psgix.logger'}->({ level => "debug", message => "This is debug" });
return [ 200, [], [] ];
};
Run Code Online (Sandbox Code Playgroud)
为了解决多节点问题,您可以使用Log :: Dispatch :: Syslog将日志发送到rsyslog,而rsyslog又可以将日志数据传递到另一个rsyslog服务器.这样,所有节点都可以登录到单个中央日志服务器.
借助Log :: Dispatch的灵活性,您还可以选择本地和远程登录以获得冗余.发送到中央服务器的日志可以被认为是主要的,并且在中央日志服务器停机一点的情况下,本地完成的日志记录可以被视为备份.
使用中央日志服务器有几个优点:
我目前一起使用Log :: Dispach和Rsyslog来自行管理多节点集群.
归档时间: |
|
查看次数: |
1560 次 |
最近记录: |