尽管很少和不清楚的文档和一个有效的方法初学者,我已经成长为喜欢PSGI,目前正在使用它在我的一个应用程序。我想知道的是如何管理跨多节点应用程序的日志记录?什么是在PSGI中进行日志记录的“最佳实践”?
发布于 2012-05-31 03:03:08
我建议使用Plack::中间件::AccessLog进行日志访问,Plack::中间件::LogDispatch用于自定义日志记录。它们都使用流行的日志::发送模块。
LogDispatch中间件文档目前没有向您展示如何在设置日志对象之后使用它。下面是一个例子:
my $app = sub {
my $env = shift;
$env->{'psgix.logger'}->({ level => "debug", message => "This is debug" });
return [ 200, [], [] ];
};为了解决多节点问题,您可以使用日志::调度::Syslog将日志发送到rsyslog,后者反过来可以将日志数据传递给另一个rsyslog服务器。这样,所有节点都可以登录到单个中央日志服务器。
有了log::调度的灵活性,您还可以选择在本地和远程记录冗余(如果您愿意)。发送到中央服务器的日志可以被认为是主日志,在本地完成的日志记录可以被视为备份,以防中央日志服务器出现故障。
使用中央日志服务器有几个优点:
我目前以这种方式使用Log::Dispach和Rsyslog来管理多节点集群。
https://stackoverflow.com/questions/8883364
复制相似问题