【发布时间】:2015-04-08 08:33:29
【问题描述】:
我找到了一个可以登录 fluentd 的 Java 库,但找不到用于 clojure 的库。是否有任何 Clojure 库可以基于 fluentd 进行日志记录?
【问题讨论】:
-
为什么不通过 Clojure 互操作工具直接利用 fluent-logger-java?只有两种方法可以完成工作。无论如何(将记录写入自定义目的地等)都是通过配置文件实现的。
我找到了一个可以登录 fluentd 的 Java 库,但找不到用于 clojure 的库。是否有任何 Clojure 库可以基于 fluentd 进行日志记录?
【问题讨论】:
不幸的是,目前答案是否定的。尽管我确实通过通过 TCP 发送消息和使用 log4j 写入日志文件,然后使用流利的尾部日志文件来使用 Clojure 的 fluentd。我发现拖尾方法 much 更方便,尽管它有一个很大的限制,即来自单个日志文件的所有事件都以流利的方式获取相同的标签,而当您通过网络套接字发送它们时,每条消息都可以拥有它自己的标签。
如果您可以在 clojure 服务中流畅地处理所有具有相同标签的事件,那么请使用尾随附加程序。否则你可以使用java或者自己滚动。我们在内部制作了一个,基本上构建一个看起来像这样的向量并不难:
[tag (long (/ (System/currentTimeMillis) 1000)) your-json-message]
并将其打包到协议缓冲区中并通过套接字发送。如果我要重新开始那个项目,我会选择 java 库。
【讨论】: