%% %% %CopyrightBegin% %% %% Copyright Ericsson AB 2002-2009. All Rights Reserved. %% %% 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. %% %% %CopyrightEnd% %% -module(snmpa_error). -behaviour(snmpa_error_report). %%%----------------------------------------------------------------- %%% Implements different error mechanisms. %%%----------------------------------------------------------------- -export([user_err/2, config_err/2]). %%----------------------------------------------------------------- %% This function is called when there is an error in a user %% supplied item, e.g. instrumentation function. %%----------------------------------------------------------------- user_err(F, A) -> report_err(user_err, F, A). %%----------------------------------------------------------------- %% This function is called when there is a configuration error, %% either at startup (in a conf-file) or at run-time (e.g. when %% information in the configuration tables are inconsistent.) %%----------------------------------------------------------------- config_err(F, A) -> report_err(config_err, F, A). %% ----------------------------------------------------------------- report_err(Func, Format, Args) -> case report_module() of {ok, Mod} -> (catch Mod:Func(Format, Args)); _ -> ok end. report_module() -> case (catch ets:lookup(snmp_agent_table, error_report_mod)) of [{error_report_mod, Mod}] -> {ok, Mod}; _ -> error end.