====== Running Examples ====== * test packaged images. * load the config map. * load the 8/2/2011 verions of LogManager>>readIniFile. Only the last three lines are different. * put the packaged images in c:\temp * from nls, run //..\bin\nodialog -ic:\temp\hw -lCON -ini:c:\temp\abt.ini// * or, //..\bin\nodialog -ic:\avast\229\image852\epappl -lCON -ini:c:\avast\229\image852\abt.ini// * or //..\bin\nodialog -ic:\avast\264\newimage860\helloworld -lCON -ini:c:\avast\264\newimage860\abt.ini// * the switch above is -i, not -ic: * XD images get run just like abt.icx. 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]