0

我们尝试使用 lager 作为我们的日志框架。但是我们遇到了一些问题。

  1. lager 可能会丢失一些日期,我们看过 lager 的源代码,我认为原因是 gen_event notify 是异步调用,它不能保证消息接收。

  2. 较大的性能还不够好。我只是猜测这是因为 lager 的文件后端是由 erlang 编写的。所以它没有很好的表现。

所以,我觉得用C写的,用Erlang封装的日志框架可能是个不错的选择。

你知道任何符合要求的 Erlang 框架吗?

4

1 回答 1

1
  1. lager 在应用程序中创建一个名为“lager_event”的事件。

  2. 对于每个后端,只有一个 gen_event 进程来处理它。因此,如果有太多进程同时生成消息,日志当然会在某个特定时间丢失。这与您使用哪种语言无关。

建议: 1.控制原木数量。2.摆脱erlang的事件系统,创建一个jobs(tasks)的子系统(多进程)来处理日志。

于 2014-04-25T11:56:38.713 回答