我们尝试使用lager作为我们的日志框架。但我们遇到了一些问题。
lager可能会丢失一些日期,我们已经看到了lager的源代码,我认为原因是gen_event notify是异步调用,它不保证消息接收。
较大的表现不够好。我只是猜测是因为lager的文件后端是由erlang编写的。所以它没有很好的表现。
所以,我认为由C编写并由Erlang封装的日志框架可能是一个不错的选择。
您知道任何Erlang框架符合要求吗?
答案 0 :(得分:1)
lager创建一个名为' lager_event'的活动。在申请表中。
对于每个后端,只有一个gen_event进程来处理它。因此,如果过多的进程同时生成消息,则日志当然会在一个特定时间丢失。 它与您使用的语言无关。
Sugguest: 控制日志数量 2.摆脱erlang的事件系统,创建一个工作(任务)的子系统(多进程)来处理日志。