1%% 2%% %CopyrightBegin% 3%% 4%% Copyright Ericsson AB 2017-2020. All Rights Reserved. 5%% 6%% Licensed under the Apache License, Version 2.0 (the "License"); 7%% you may not use this file except in compliance with the License. 8%% You may obtain a copy of the License at 9%% 10%% http://www.apache.org/licenses/LICENSE-2.0 11%% 12%% Unless required by applicable law or agreed to in writing, software 13%% distributed under the License is distributed on an "AS IS" BASIS, 14%% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15%% See the License for the specific language governing permissions and 16%% limitations under the License. 17%% 18%% %CopyrightEnd% 19%% 20-include_lib("kernel/include/logger.hrl"). 21-define(LOGGER_TABLE,logger). 22-define(PROXY_KEY,'$proxy_config$'). 23-define(PRIMARY_KEY,'$primary_config$'). 24-define(HANDLER_KEY,'$handler_config$'). 25-define(LOGGER_META_KEY,'$logger_metadata$'). 26-define(STANDARD_HANDLER, default). 27-define(DEFAULT_HANDLER_FILTERS,?DEFAULT_HANDLER_FILTERS([otp])). 28-define(DEFAULT_HANDLER_FILTERS(Domain), 29 [{remote_gl,{fun logger_filters:remote_gl/2,stop}}, 30 {domain,{fun logger_filters:domain/2,{log,super,Domain}}}, 31 {no_domain,{fun logger_filters:domain/2,{log,undefined,[]}}}]). 32-define(DEFAULT_FORMATTER,logger_formatter). 33-define(DEFAULT_FORMAT_CONFIG,#{legacy_header=>true, 34 single_line=>false}). 35-define(DEFAULT_FORMAT_TEMPLATE_HEADER, 36 [[logger_formatter,header],"\n",msg,"\n"]). 37-define(DEFAULT_FORMAT_TEMPLATE_SINGLE, 38 [time," ",level,": ",msg,"\n"]). 39-define(DEFAULT_FORMAT_TEMPLATE, 40 [time," ",level,":\n",msg,"\n"]). 41 42-define(DEFAULT_LOGGER_CALL_TIMEOUT, infinity). 43 44-define(LOG_INTERNAL(Level,Log,Report), 45 ?DO_LOG_INTERNAL(Level,Log,[Report])). 46-define(LOG_INTERNAL(Level,Log,Format,Args), 47 ?DO_LOG_INTERNAL(Level,Log,[Format,Args])). 48-define(DO_LOG_INTERNAL(Level,Log,Data), 49 case logger:allow(Level,?MODULE) of 50 true -> 51 _ = logger_server:do_internal_log(Level,?LOCATION,Log,Data), 52 ok; 53 false -> 54 ok 55 end). 56 57%%%----------------------------------------------------------------- 58%%% Levels 59%%% Using same as syslog 60-define(LEVELS,[none, 61 emergency, 62 alert, 63 critical, 64 error, 65 warning, 66 notice, 67 info, 68 debug, 69 all]). 70-define(LOG_NONE,-1). 71-define(EMERGENCY,0). 72-define(ALERT,1). 73-define(CRITICAL,2). 74-define(ERROR,3). 75-define(WARNING,4). 76-define(NOTICE,5). 77-define(INFO,6). 78-define(DEBUG,7). 79-define(LOG_ALL,10). 80 81-define(IS_LEVEL(L), 82 (L=:=emergency orelse 83 L=:=alert orelse 84 L=:=critical orelse 85 L=:=error orelse 86 L=:=warning orelse 87 L=:=notice orelse 88 L=:=info orelse 89 L=:=debug )). 90 91-define(IS_LEVEL_ALL(L), 92 ?IS_LEVEL(L) orelse 93 L=:=all orelse 94 L=:=none ). 95 96-define(IS_MSG(Msg), 97 ((is_tuple(Msg) andalso tuple_size(Msg)==2) 98 andalso 99 (is_list(element(1,Msg)) andalso is_list(element(2,Msg))) 100 orelse 101 (element(1,Msg)==report andalso ?IS_REPORT(element(2,Msg))) 102 orelse 103 (element(1,Msg)==string andalso ?IS_STRING(element(2,Msg))))). 104 105-define(IS_REPORT(Report), 106 (is_map(Report) orelse (is_list(Report) andalso is_tuple(hd(Report))))). 107 108-define(IS_STRING(String), 109 (is_list(String) orelse is_binary(String))). 110 111-define(IS_FORMAT(Format), 112 (?IS_STRING(Format) orelse is_atom(Format))). 113