複数サーバーでtail -fっぽく読むJavaライブラリtailer7
tailer7というJavaライブラリを公開しました。
これを使うと、たとえばcommons-io Tailerでログをtail -fしつつtailer7のLogSenderに投げれば、複数サーバーでLogTailerを立ち上げてstreamingでログを受け取れます。
アイデアについてはこの記事にインスパイアされています。
tailer7は以下のような用途を目的として作ったもので、厳密な順序保証とか信頼性とかそういった考慮はされていません。
- Ansibleを実行するUIを開発していて、ansible logがリアルタイムに流れる画面を作りたい
- リアルタイムに流れる画面を開き直したとき、新しく流れてくるログだけじゃなく、まずログの頭から読みたい
- Ansibleを実行するサーバーはtailer7にログを投げ、画面を提供するサーバーはtailer7からログを読めば、スケールしやすくて便利!