Skip to content

Commit 26656d6

Browse files
author
Julien Debon
committed
feat(callback): Change log callback log level to KafkaLogLevel
* Int becomes KafkaLogLevel (breaking changes) * Add documentation for callbacks Closes #135
1 parent 28c1fb1 commit 26656d6

File tree

1 file changed

+33
-3
lines changed

1 file changed

+33
-3
lines changed

src/Kafka/Callbacks.hs

Lines changed: 33 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,48 @@ where
77

88
import Kafka.Internal.RdKafka (rdKafkaConfSetErrorCb, rdKafkaConfSetLogCb, rdKafkaConfSetStatsCb)
99
import Kafka.Internal.Setup (HasKafkaConf(..), getRdKafkaConf)
10-
import Kafka.Types (KafkaError(..))
10+
import Kafka.Types (KafkaError(..), KafkaLogLevel(..))
1111

12+
-- | Add a callback for errors.
13+
--
14+
-- ==== __Examples__
15+
--
16+
-- Basic usage:
17+
--
18+
-- > setCallback (errorCallback myErrorCallback)
19+
-- >
20+
-- > myErrorCallback :: KafkaError -> String -> IO ()
21+
-- > myErrorCallback kafkaError message = print $ show kafkaError <> "|" <> message
1222
errorCallback :: HasKafkaConf k => (KafkaError -> String -> IO ()) -> k -> IO ()
1323
errorCallback callback k =
1424
let realCb _ err = callback (KafkaResponseError err)
1525
in rdKafkaConfSetErrorCb (getRdKafkaConf k) realCb
1626

17-
logCallback :: HasKafkaConf k => (Int -> String -> String -> IO ()) -> k -> IO ()
27+
-- | Add a callback for logs.
28+
--
29+
-- ==== __Examples__
30+
--
31+
-- Basic usage:
32+
--
33+
-- > setCallback (logCallback myLogCallback)
34+
-- >
35+
-- > myLogCallback :: KafkaLogLevel -> String -> String -> IO ()
36+
-- > myLogCallback level facility message = print $ show level <> "|" <> facility <> "|" <> message
37+
logCallback :: HasKafkaConf k => (KafkaLogLevel -> String -> String -> IO ()) -> k -> IO ()
1838
logCallback callback k =
19-
let realCb _ = callback
39+
let realCb _ = callback . toEnum
2040
in rdKafkaConfSetLogCb (getRdKafkaConf k) realCb
2141

42+
-- | Add a callback for stats.
43+
--
44+
-- ==== __Examples__
45+
--
46+
-- Basic usage:
47+
--
48+
-- > setCallback (statsCallback mystatsCallback)
49+
-- >
50+
-- > mystatsCallback :: String -> IO ()
51+
-- > mystatsCallback stats = print $ show stats
2252
statsCallback :: HasKafkaConf k => (String -> IO ()) -> k -> IO ()
2353
statsCallback callback k =
2454
let realCb _ = callback

0 commit comments

Comments
 (0)