Define behavioural callbacks with modern syntax
diff --git a/src/couch_log.erl b/src/couch_log.erl
index 384f85a..dbc8cad 100644
--- a/src/couch_log.erl
+++ b/src/couch_log.erl
@@ -19,13 +19,15 @@
 -export([debug/2, info/2, notice/2, warning/2, error/2, critical/2, alert/2, emergency/2]).
 -export([set_level/1]).
 
--export([behaviour_info/1]).
+-callback debug(Fmt::string(), Args::list()) -> ok.
+-callback info(Fmt::string(), Args::list()) -> ok.
+-callback notice(Fmt::string(), Args::list()) -> ok.
+-callback warning(Fmt::string(), Args::list()) -> ok.
+-callback error(Fmt::string(), Args::list()) -> ok.
+-callback critical(Fmt::string(), Args::list()) -> ok.
+-callback alert(Fmt::string(), Args::list()) -> ok.
+-callback set_level(Level::atom()) -> ok.
 
-behaviour_info(callbacks) ->
-    [{debug, 2}, {info, 2}, {notice, 2}, {warning, 2},
-    {error, 2}, {critical, 2}, {alert, 2}, {set_level, 1}];
-behaviour_info(_) ->
-    undefined.
 
 -spec debug(string(), list()) -> ok.
 debug(Fmt, Args) ->