module Graylog.UDP ( sendLog , module Export ) where import Data.Aeson import qualified Data.ByteString.Lazy as LBS import Data.Word import Network.Socket.ByteString.Lazy import System.Random import Graylog.Gelf as Export import Graylog.Types as Export sendLog :: Graylog -> GELF -> IO () sendLog glog msg = mapM_ (send $ _graylogSocket glog) cks where raw = encode msg cks = chunky glog raw chunky :: Graylog -> LBS.ByteString -> IO [LBS.ByteString] chunky glog raw = do groupId <- randomIO splitAt gsize where magic = undefined seq = undefined total = undefined hlen = 12 gsize = (fromIntegral (_graylogChunkSize glog)) - hlen