summaryrefslogtreecommitdiff
path: root/src/couch_log/src/couch_log.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/couch_log/src/couch_log.erl')
-rw-r--r--src/couch_log/src/couch_log.erl14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/couch_log/src/couch_log.erl b/src/couch_log/src/couch_log.erl
index b8a1ca4bd..595143962 100644
--- a/src/couch_log/src/couch_log.erl
+++ b/src/couch_log/src/couch_log.erl
@@ -21,7 +21,7 @@
critical/2,
alert/2,
emergency/2,
-
+ report/2,
set_level/1
]).
@@ -49,6 +49,18 @@ alert(Fmt, Args) -> log(alert, Fmt, Args).
-spec emergency(string(), list()) -> ok.
emergency(Fmt, Args) -> log(emergency, Fmt, Args).
+-spec report(string(), map()) -> true | false.
+report(ReportId, Meta) when is_map(Meta) ->
+ couch_stats:increment_counter([couch_log, level, report]),
+ case couch_log_formatter:format_report(self(), ReportId, Meta) of
+ {error, emsgtoolong} ->
+ couch_stats:increment_counter([couch_log, level, report_error]),
+ false;
+ {ok, Entry} ->
+ ok = couch_log_server:log(Entry),
+ true
+ end.
+
-spec set_level(atom() | string() | integer()) -> true.
set_level(Level) ->
config:set("log", "level", couch_log_util:level_to_string(Level)).