4

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

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

谁能给我一些关于如何配置的指导?

4

2 回答 2

3

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

但是,一切都不会丢失,您可以配置更大的 syslog 适配器以使用已知设施记录到同一台机器上的 syslog-ng 或 rsyslog,并让该 syslog 守护程序将日志发送到 Papertrail。Papertrail 有一个syslog 配置指南,它将告诉您如何配置 syslog 服务器。

我建议local0在更大的 syslog 适配器中使用或其他工具,然后像这样配置 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); };
于 2013-07-27T08:10:47.473 回答
1

正如@archaelus 所说,目前没有lager支持远程协议的系统日志适配器。

另一种方法似乎用于lager记录到文件:

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

然后使用remote_syslog2Papertrail 转发这个日志文件。

为此下载并安装最新的 remote_syslog2 二进制文件(说明)。

添加一个/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 守护进程:sudo remote_syslog

您还可以查看Papertrail 为集中 Erlang 日志创建的文档页面。


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

于 2018-03-16T15:44:14.140 回答