【问题标题】:How to configure lager to send logs to papertrail or loggly如何配置 lager 以将日志发送到 papertrail 或 loggly
【发布时间】:2013-07-27 11:46:43
【问题描述】:

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

我想将日志输出发送到 Papertrail,否则 Loggly 失败。

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

【问题讨论】:

    标签: erlang loggly papertrail-app


    【解决方案1】:

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

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

    我建议使用 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); };
    

    【讨论】:

      【解决方案2】:

      正如@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 守护进程:sudo remote_syslog

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


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

      【讨论】:

        猜你喜欢
        • 2015-12-15
        • 2017-01-28
        • 2020-11-23
        • 2012-05-14
        • 1970-01-01
        • 2020-06-30
        • 1970-01-01
        • 1970-01-01
        • 2019-01-05
        相关资源
        最近更新 更多