indexing
	description: "Hierarchy of logging categories."
	project: "Project Goanna <http://sourceforge.net/projects/goanna>"
	library: "log4e"
	date: "$Date$"
	revision: "$Revision$"
	author: "Glenn Maughan <glennmaughan@goanna.info>"
	copyright: "Copyright (c) 2002 Glenn Maughan"
	license: "Eiffel Forum License v1 (see forum.txt)."
class interface
	L4E_HIERARCHY
create 
	make (priority: L4E_PRIORITY)
			
			
		ensure
			not_disabled: disabled = disable_off
feature 
	Debug_int: INTEGER is 10000
			 L4E_PRIORITY_CONSTANTS
	debug_p: L4E_PRIORITY
			
			
			
			 L4E_PRIORITY_CONSTANTS
	Error_int: INTEGER is 40000
			 L4E_PRIORITY_CONSTANTS
	error_p: L4E_PRIORITY
			
			 L4E_PRIORITY_CONSTANTS
	Fatal_int: INTEGER is 50000
			 L4E_PRIORITY_CONSTANTS
	fatal_p: L4E_PRIORITY
			
			
			 L4E_PRIORITY_CONSTANTS
	Info_int: INTEGER is 20000
			 L4E_PRIORITY_CONSTANTS
	info_p: L4E_PRIORITY
			
			
			
			 L4E_PRIORITY_CONSTANTS
	Warn_int: INTEGER is 30000
			 L4E_PRIORITY_CONSTANTS
	warn_p: L4E_PRIORITY
			
			
			 L4E_PRIORITY_CONSTANTS
	
feature 
	make (priority: L4E_PRIORITY)
			
			
		ensure
			not_disabled: disabled = disable_off
	
feature 
	all_loggers: DS_LIST [L4E_LOGGER]
			
	logger (cat_name: STRING): L4E_LOGGER
			
			
		require
			cat_name_exists: cat_name /= void and then not cat_name.is_empty
			no_start_or_end_dots: cat_name.item (1) /= '.' and then cat_name.item (cat_name.count) /= '.'
			no_consecutive_dots: cat_name.substring_index ("..", 1) = 0
		ensure
			logger_exists: has (cat_name)
	
feature 
	Disable_off: INTEGER is -1
			
	disabled: INTEGER
			
			
	has (name: STRING): BOOLEAN
			
		require
			name_exists: name /= void
	is_enabled_for (priority: L4E_PRIORITY): BOOLEAN
			
	root: L4E_LOGGER
			
	
feature 
	clear
			
	close_all
			
			
	disable (priority: L4E_PRIORITY)
			
		require
			priority_exists: priority /= void
		ensure
			priority_disabled: disabled = priority.level
	disable_all
			
	disable_debug
			
	disable_info
			
	enable_all
			
	
invariant
		 ANY
	reflexive_equality: standard_is_equal (Current)
	reflexive_conformance: conforms_to (Current)
end -- L4E_HIERARCHY
 Goanna Log4E -- Copyright © 2002 Glenn Maughan