【问题标题】:Something about erlang log framework关于erlang日志框架的一些东西
【发布时间】:2014-04-25 19:56:38
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • Lager 的性能不够好,您认为解决方案是使用 C?您是否认真声称您分析并发现 lager 受 CPU 限制而不是磁盘限制?
  • Lager 在不堪重负时实际上会更改为同步调用。所以很可能你记录的太多而你跟不上。然后它会减慢应用程序的速度以跟上。考虑制作自己的日志基础设施。 disk_log 模块可能会派上用场。

标签: frameworks erlang erlang-driver


【解决方案1】:
  1. 在应用程序中创建一个名为“lager_event”的事件。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-06
    • 2011-02-26
    • 2013-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多