如何配置lager将日志发送到papertrail或loggly

时间:2013-07-27 04:48:50

标签: erlang loggly papertrail-app

我正在构建一个erlang应用程序并使用lager - 一个由Basho技术编写的日志框架。

我想将日志输出发送到Papertrail,或者使Loggly失败。

有人可以给我一些如何配置的指导吗?

2 个答案:

答案 0 :(得分:3)

我打算建议使用lager syslog适配器,并将其配置为与Papertrail或Loggly的syslog输入进行通信,但Basho syslog适配器仅记录到localhost。

但是,一切都没有丢失,您可以将lager syslog adapter配置为使用已知设施登录到同一台计算机上的syslog-ng或rsyslog,并让该syslog守护程序将日志发送到Papertrail。 Papertrail有syslog configuration guide,它将告诉您如何配置syslog服务器。

我建议在较大的syslog适配器中使用local0或类似设施,然后像这样配置rsylog:

local0.*    @logs.papertrailapp.com:1234

syslog-ng配置更复杂:

filter f_erlang { facility(local0); };
destination d_papertrail {
  udp("logs.papertrailapp.com" port(514));
};
log { source(s_local); filter(f_erlang); destination(d_papertrail); };

答案 1 :(得分:0)

正如@archaelus所说,目前没有lager syslog适配器支持远程协议。

另一种方法似乎是使用lager来登录文件:

{lager, [
    {handlers, [
        {lager_file_backend, [{file, "info.log"}, {level, info}]}
  ]}

然后使用remote_syslog2转发此日志文件Papertrail。

对于该下载并安装最新的remote_syslog2二进制文件(instructions)。

添加/etc/log_files.yml配置文件:

files: 
  - /path/to/your/app/log/info.log
destination:
  host: logs.papertrailapp.com
  port: 1234
  protocol: tls
pid_file: /var/run/remote_syslog.pid

最后是remote_syslog2 deamon:sudo remote_syslog

您还可以查看documentation page Papertrail为集中Erlang日志而创建的内容。

对于Loggly,有一个专用的Lager适配器:lager_loggly