Collect stats for log messages
diff --git a/priv/stats_descriptions.cfg b/priv/stats_descriptions.cfg
new file mode 100644
index 0000000..9350a9c
--- /dev/null
+++ b/priv/stats_descriptions.cfg
@@ -0,0 +1,44 @@
+%% Licensed under the Apache License, Version 2.0 (the "License"); you may not
+%% use this file except in compliance with the License. You may obtain a copy of
+%% the License at
+%%
+%%   http://www.apache.org/licenses/LICENSE-2.0
+%%
+%% Unless required by applicable law or agreed to in writing, software
+%% distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+%% WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+%% License for the specific language governing permissions and limitations under
+%% the License.
+
+% Style guide for descriptions: Start with a lowercase letter & do not add
+% a trailing full-stop / period
+% Please keep this in alphabetical order
+
+{[couch_log, level, critical], [
+    {type, counter},
+    {desc, <<"number of logged critical messages">>}
+]}.
+{[couch_log, level, debug], [
+    {type, counter},
+    {desc, <<"number of logged debug messages">>}
+]}.
+{[couch_log, level, emergency], [
+    {type, counter},
+    {desc, <<"number of logged emergency messages">>}
+]}.
+{[couch_log, level, error], [
+    {type, counter},
+    {desc, <<"number of logged error messages">>}
+]}.
+{[couch_log, level, info], [
+    {type, counter},
+    {desc, <<"number of logged info messages">>}
+]}.
+{[couch_log, level, notice], [
+    {type, counter},
+    {desc, <<"number of logged notice messages">>}
+]}.
+{[couch_log, level, warning], [
+    {type, counter},
+    {desc, <<"number of logged warning messages">>}
+]}.
diff --git a/src/couch_log.app.src b/src/couch_log.app.src
index f8372ca..0231860 100644
--- a/src/couch_log.app.src
+++ b/src/couch_log.app.src
@@ -15,5 +15,5 @@
     {vsn, git},
     {modules, [couch_log]},
     {registered, []},
-    {applications, [kernel, stdlib, lager]}
+    {applications, [kernel, stdlib, lager, couch_stats]}
 ]}.
diff --git a/src/couch_log.erl b/src/couch_log.erl
index dd6f25e..9c5b7e8 100644
--- a/src/couch_log.erl
+++ b/src/couch_log.erl
@@ -15,25 +15,33 @@
 -export([debug/2, info/2, notice/2, warning/2, error/2, critical/2, alert/2, emergency/2]).
 
 debug(Fmt, Args) ->
+    couch_stats:increment_counter([couch_log, level, debug]),
     lager:debug(Fmt, Args).
 
 info(Fmt, Args) ->
+    couch_stats:increment_counter([couch_log, level, info]),
     lager:info(Fmt, Args).
 
 notice(Fmt, Args) ->
+    couch_stats:increment_counter([couch_log, level, notice]),
     lager:notice(Fmt, Args).
 
 warning(Fmt, Args) ->
+    couch_stats:increment_counter([couch_log, level, warning]),
     lager:warning(Fmt, Args).
 
 error(Fmt, Args) ->
+    couch_stats:increment_counter([couch_log, level, error]),
     lager:error(Fmt, Args).
 
 critical(Fmt, Args) ->
+    couch_stats:increment_counter([couch_log, level, critical]),
     lager:critical(Fmt, Args).
 
 alert(Fmt, Args) ->
+    couch_stats:increment_counter([couch_log, level, alert]),
     lager:alert(Fmt, Args).
 
 emergency(Fmt, Args) ->
+    couch_stats:increment_counter([couch_log, level, emergency]),
     lager:emergency(Fmt, Args).