首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PSGI日志记录(Perl)

PSGI日志记录(Perl)
EN

Stack Overflow用户
提问于 2012-01-16 16:52:17
回答 1查看 1.7K关注 0票数 8

尽管很少和不清楚的文档和一个有效的方法初学者,我已经成长为喜欢PSGI,目前正在使用它在我的一个应用程序。我想知道的是如何管理跨多节点应用程序的日志记录?什么是在PSGI中进行日志记录的“最佳实践”?

EN

回答 1

Stack Overflow用户

发布于 2012-05-31 03:03:08

我建议使用Plack::中间件::AccessLog进行日志访问,Plack::中间件::LogDispatch用于自定义日志记录。它们都使用流行的日志::发送模块。

LogDispatch中间件文档目前没有向您展示如何在设置日志对象之后使用它。下面是一个例子:

代码语言:javascript
复制
my $app = sub {
    my $env = shift;
    $env->{'psgix.logger'}->({ level => "debug", message => "This is debug" });
    return [ 200, [], [] ];
};

为了解决多节点问题,您可以使用日志::调度::Syslog将日志发送到rsyslog,后者反过来可以将日志数据传递给另一个rsyslog服务器。这样,所有节点都可以登录到单个中央日志服务器。

有了log::调度的灵活性,您还可以选择在本地和远程记录冗余(如果您愿意)。发送到中央服务器的日志可以被认为是主日志,在本地完成的日志记录可以被视为备份,以防中央日志服务器出现故障。

使用中央日志服务器有几个优点:

  1. 您可以在一个地方'grep‘您的日志横跨整个集群。
  2. 使用一组日志文件,日志的旋转和分析更简单。
  3. 您可以更好地调整集群的大小,因为您可以关闭一个节点,而不必担心会丢失日志记录,或者让服务器继续工作,以便一夜之间的cron作业可以启动来处理日志。

我目前以这种方式使用Log::Dispach和Rsyslog来管理多节点集群。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8883364

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档