概要
過去に fluent-logger の使い方を紹介しました
今回は fluent-logger でタイムアウトを設定する方法を紹介します
環境
- macOS 15.5
- Python 3.12.11
- fluent-logger 0.11.1
サンプルコード
from fluent import sender
# デフォルトのタイムアウトは3.0秒
logger = sender.FluentSender(
"app",
host="127.0.0.3",
port=24224,
timeout=10.0,
)
result = logger.emit("follow", {"from": "userA", "to": "userB"})
print(result)
最後に
FluentSender の場合もし host にアクセスできない宛先を指定しても Exception は発生しません
emit してその結果を True/Flase を確認することで初めて送れたかどうかを確認できます
なので host にアクセス出来なかった理由が詳細にわからないので注意しましょう
事前に host に接続できるかどうかチェックしたい場合は以下のようなメソッドを自前で準備する必要がありそうです
import socket
def check_fluentd_reachable(host, port, timeout=2):
try:
with socket.create_connection((host, port), timeout):
return True
except Exception as e:
print(f"[FluentD Unreachable] {e}")
return False
if check_fluentd_reachable('localhost', 24224):
logger.emit('app.test', {'message': 'hi'})
else:
print("Fluentd に接続できません")
0 件のコメント:
コメントを投稿