1

我按照这里描述的指南https://devcenter.heroku.com/articles/logging#creating-your-own-syslog-drain创建我自己的 rsyslog 排水管。

我使用以下行配置了我的 rsyslog:

:inputname, isequal, "imtcp" /var/log/heroku.log

这仅在我将 rsyslog 从 5.x 更新到 7.x 后才有效。一个错误阻止 rsyslog 使用端口 514。但更新后它运行良好。

但现在我想将日志拆分为每个应用程序一个文件。我发现了另一个关于我应该使用的说法的问题:

if $hostname isqual "d.123..." then /var/log/my_application.log

其中“d.123...”是 Heroku 提供的实际流失 ID。但这没有用。我按照rsyslog 站点上的文档尝试了几种变体。没有工作。

同样,使用一个文件有效。我配置为使用该排水管的 Heroku 上的每个应用程序都已成功将其日志发送给它。但似乎我不知道如何为每个应用程序拆分一个文件。

提前致谢。

4

2 回答 2

1

我在我的 rsyslog 排水管中使用了这个:

if $syslogtag startswith 'app[postgres]' then /myapp/postgres
& ~
if $syslogtag startswith 'app[pgbackups]' then /myapp/postgres
& ~
if $syslogtag startswith 'heroku[' then /myapp/heroku
& ~
if $syslogtag startswith 'app[' then /myapp/app
& ~

HTH。

于 2013-07-27T18:25:28.980 回答
1

刚刚发现您必须手动创建日志文件。rsyslog 无法创建它们,也不会在自己的日志中抱怨。

因此,我使用了文章中提出的配置并运行了touch my-application-123.logplus chown syslog:adm my-application-123.log,然后它就可以工作了。

于 2013-08-05T18:36:31.140 回答