From 863f48be8c7acbc82de9495020932305593e238c Mon Sep 17 00:00:00 2001 From: Holger Hans Peter Freyther Date: Mon, 6 Sep 2010 15:02:41 +0800 Subject: [PATCH] Fix the logging, log at the enabled status - Use the right selector - Get the area, look at the enabled status --- LogManager.st | 40 ++++++++++++++++++++++++++++------------ 1 file changed, 28 insertions(+), 12 deletions(-) diff --git a/LogManager.st b/LogManager.st index 9f86e4f..61cff77 100644 --- a/LogManager.st +++ b/LogManager.st @@ -4,7 +4,7 @@ Object extend [ logConfig [ "I provide access to the global LogConfig" - ^ LogConfig instance + ^ LogConfig default ] logManager [ @@ -63,7 +63,7 @@ Object subclass: LogArea [ - LogArea class >> withName: aName enabled: anEnabled level: aLevel [ + LogArea class >> withName: aName enabled: anEnabled minLevel: aLevel [ ^ (LogArea new) name: aName; @@ -92,20 +92,18 @@ Object subclass: LogArea [ enabled := anEnabled. ] - level [ + minLevel [ ^ level ] - level: aLevel [ + minLevel: aLevel [ level := aLevel ] ] Object subclass: LogConfig [ - | areas | - @@ -121,14 +119,14 @@ Object subclass: LogConfig [ "Add the area to the list of areas" - self class addInstVarName: aName asSymbol. + (self class instVarNames includes: aName asSymbol) + ifFalse: [ + self class addInstVarName: aName asSymbol + ]. + self instVarNamed: aName asSymbol put: anArea. self class compile: aName, '[ ^ ', aName, ']' classified: 'area-access'. ] - - areas [ - ^ areas - ] ] Object subclass: LogManager [ @@ -144,6 +142,24 @@ Object subclass: LogManager [ log: message source: anObject area: anArea level: anLevel [ - Transcript show: message; nl. + | config area | + + config := anObject logConfig. + area := config perform: anArea asSymbol. + + area enabled + ifTrue: [ + Transcript show: message; nl. + ]. ] ] + +Eval [ + area := LogArea withName: 'Base is for Base' enabled: true minLevel: LogLevel debug. + nothere := LogArea withName: 'Base is for Base' enabled: false minLevel: LogLevel debug. + LogConfig default addArea: area name: #base. + LogConfig default addArea: nothere name: #nothere. + + '123' logDebug: 'Log Message' area: #base. + '456' logDebug: 'Log Foo' area: #nothere +]