我按照这里描述的指南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后才能工作。 A bug was preventing rsyslog to use the port 514。但是在更新之后它运行良好。
但是现在我想将每个应用程序的日志分成一个文件。我发现了另一个问题,我应该使用:
if $hostname isqual "d.123..." then /var/log/my_application.log
其中“d.123 ...”是Heroku提供的实际排水ID。但那没用。我在docs on rsyslog site之后尝试了几种变体。没有工作。
再一次,使用一个单独的文件。 Heroku上的每个应用程序我配置为使用该排水已成功发送其日志。但似乎我无法找到如何按应用程序拆分文件。
提前致谢。
答案 0 :(得分: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。
答案 1 :(得分:1)
我们发现你必须手动创建日志文件。 rsyslog无法创建它们,也不会在自己的日志中抱怨。
所以,我使用了文章中提出的配置并运行touch my-application-123.log
加chown syslog:adm my-application-123.log
然后就可以了。