【发布时间】:2013-07-27 11:46:43
【问题描述】:
我正在构建一个 erlang 应用程序并使用 lager - 一个由 Basho 技术编写的日志框架。
我想将日志输出发送到 Papertrail,否则 Loggly 失败。
谁能给我一些关于如何配置的指导?
【问题讨论】:
标签: erlang loggly papertrail-app
我正在构建一个 erlang 应用程序并使用 lager - 一个由 Basho 技术编写的日志框架。
我想将日志输出发送到 Papertrail,否则 Loggly 失败。
谁能给我一些关于如何配置的指导?
【问题讨论】:
标签: erlang loggly papertrail-app
我正要建议使用 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); };
【讨论】:
正如@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。
【讨论】: