我有一个在 Amazon EC2 实例上运行的 Perl/Plack/Postgres/Linux Web 应用程序。我即将开始在负载均衡器后面的多个实例上运行它,因此我需要一种方法将应用程序的日志消息收集到一个地方。
目前我使用一个 log4perl 配置文件,它使用 Log::Log4perl::Appender::File 将日志记录到磁盘上。一些日志消息被路由到多个日志文件,还有一些还由发送电子邮件的附加程序处理。我使用 Linux logrotate 实用程序进行轮换,但我根本不使用 syslog 来处理应用程序级别的消息。
将日志发送到 Amazon Cloudwatch 似乎是解决问题的好方法。虽然我可以在 CPAN 上找到各种模块来与 Amazon Cloudwatch 交互(感谢模块建议),但我找不到任何现成的 log4perl 附加程序来帮助解决这个问题。我需要自己写吗?
如果有什么不同,我已经在我的项目中使用了 AWS::Signature4 和 Amazon::S3::Thin。到目前为止,我已经避免使用具有严重依赖关系的模块,例如 Moose,但如果需要,我可以放松该策略。