1-- This file is covered by the Internet Software Consortium (ISC) License 2-- Reference: ../../License.txt 3 4with CommonText; 5with AdaBase.Logger.Base.File; 6with AdaBase.Logger.Base.Screen; 7 8package AdaBase.Logger.Facility is 9 10 package CT renames CommonText; 11 package AL renames AdaBase.Logger.Base; 12 package ALF renames AdaBase.Logger.Base.File; 13 package ALS renames AdaBase.Logger.Base.Screen; 14 15 type LogFacility is tagged private; 16 type LogFacility_access is access all LogFacility; 17 type TAction is (attach, detach); 18 type TLogger is (file, screen); 19 20 ALREADY_ATTACHED : exception; 21 ALREADY_DETACHED : exception; 22 23 procedure standard_logger (facility : out LogFacility; 24 logger : TLogger; 25 action : TAction); 26 procedure set_log_file (facility : LogFacility; 27 filename : String); 28 procedure set_error_mode (facility : out LogFacility; 29 mode : Error_Modes); 30 function error_mode (facility : LogFacility) return Error_Modes; 31 32 procedure detach_custom_logger (facility : out LogFacility); 33 procedure attach_custom_logger (facility : out LogFacility; 34 logger_access : AL.BaseClass_Logger_access); 35 36 procedure log_nominal (facility : LogFacility; 37 driver : Driver_Type; 38 category : Log_Category; 39 message : CT.Text); 40 41 procedure log_problem 42 (facility : LogFacility; 43 driver : Driver_Type; 44 category : Log_Category; 45 message : CT.Text; 46 error_msg : CT.Text := CT.blank; 47 error_code : Driver_Codes := 0; 48 sqlstate : SQL_State := stateless; 49 break : Boolean := False); 50 51private 52 type LogFacility is tagged record 53 prop_error_mode : Error_Modes := warning; 54 listener_file : ALF.File_Logger_access := null; 55 listener_screen : ALS.Screen_Logger_access := null; 56 listener_custom : AL.BaseClass_Logger_access := null; 57 end record; 58 59 logger_file : aliased ALF.File_Logger; 60 logger_screen : aliased ALS.Screen_Logger; 61 62end AdaBase.Logger.Facility; 63