diff options
Diffstat (limited to 'src/couch_log/src/couch_log.erl')
-rw-r--r-- | src/couch_log/src/couch_log.erl | 14 |
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)). |