{-| This module needs a lot of work. It will contain all the functions that
are needed to send some "LogstashMessage" to a Logstash server.
-}
module Logstash.IO where

import Logstash.Message
import Network
import qualified Data.ByteString.Lazy as BSL
import System.IO
import Data.Aeson

{-| This very simple function lets you send a single message to a Logstash
server, using the tcp input, configured in the following way:

> input {
>   tcp {
>     debug        => "true"
>     port         => "12345"
>     data_timeout => -1
>     format       => "json_event"
>     type         => "somemessages"
>   }
> }
-}
sendSingleMessage :: HostName -> PortID -> LogstashMessage -> IO ()
sendSingleMessage h p m = do
    handle <- connectTo h p
    BSL.hPutStr handle (encode m)
    hClose handle