Running Examples

EslogManage>>readIniFile

	| iniContent noError runParams |

	iniContent := Dictionary new.
	(System iniFileGetContentsArray: 'log4s')
		associationsDo: [:assoc | iniContent add: (Association key: assoc key value: assoc value)].

	iniContent isEmpty ifTrue: [^self]. "this is ok"

	noError := true.
	#('debugEnabled' 'quietMode' 'globalLevel') do: [:each |
		iniContent
			at: each
			ifAbsent: [
				EsLogLog error: (MxESf17 bindWith: each). "$NLS$ Missing required ini file setting for %1"
				noError := false]].

	iniContent
		at: 'debugEnabled'
			ifPresent: [:value | (self checkDebugEnabled: value) isNil ifTrue: [noError := false]];
		at: 'quietMode'
			ifPresent: [:value | (self checkQuietMode: value) isNil ifTrue: [noError := false]];
		at: 'globalLevel'
			ifPresent: [:value | (self checkGlobalLevel: value) isNil ifTrue: [noError := false]].

	noError ifFalse: [^self].

	self checkForNewLogger: iniContent.

	self checkForAsyncAppender: iniContent.

	self checkForTranscriptAppender: iniContent.

	self checkForConsoleAppender: iniContent.

	self checkForFileAppender: iniContent.

	self checkForRollingFileAppender: iniContent.

	self checkForDailyRollingFileAppender: iniContent.

	self checkForSocketAppender: iniContent.

	self checkForFilters: iniContent. "check for filters after all the appenders have been created"

	EsLogLog error: 'finished processing readIniFile'. "dq remove next 3 lines"

	runParams := self checkForRunForeverParams: iniContent.

	runParams class = Association
		ifTrue: [self class logEventsFor: runParams key delay: runParams value anIniFile: iniContent]