--- a/MiniLogger.st Wed Nov 09 12:35:12 2016 +0100
+++ b/MiniLogger.st Wed Nov 09 15:17:23 2016 +0100
@@ -1,3 +1,5 @@
+"{ Encoding: utf8 }"
+
"
COPYRIGHT (c) 2012-2014 by Jan Vrany & eXept Software AG
All Rights Reserved
@@ -22,7 +24,7 @@
category:'System-Debugging-Support'
!
-Object subclass:#Severity
+Magnitude subclass:#Severity
instanceVariableNames:'name value'
classVariableNames:''
poolDictionaries:''
@@ -123,6 +125,9 @@
!MiniLogger class methodsFor:'initialization'!
initialize
+ LogOnStderr := true.
+ LogOnTranscript := true.
+
ALL := Severity new initializeWithName:#all value:0.
ENTER := Severity new initializeWithName:#enter value:10.
LEAVE := Severity new initializeWithName:#leave value:10.
@@ -139,21 +144,7 @@
FATAL := Severity new initializeWithName:#fatal value:100.
NONE := Severity new initializeWithName:#none value:65535.
- Severities := Array new:13.
- Severities at:1 put:ENTER.
- Severities at:2 put:LEAVE.
- Severities at:3 put:TRACE3.
- Severities at:4 put:TRACE2.
- Severities at:5 put:TRACE1.
- Severities at:6 put:TRACE0.
- Severities at:7 put:TRACE.
- Severities at:8 put:DEBUG.
- Severities at:9 put:INFO.
- Severities at:10 put:WARN.
- Severities at:11 put:WARNING.
- Severities at:12 put:ERROR.
- Severities at:13 put:FATAL.
-
+ Severities := {ENTER. LEAVE. TRACE3. TRACE2. TRACE1. TRACE0. TRACE. DEBUG. INFO. WARN. WARNING. ERROR. FATAL.}.
Threshold := InfoPrinting ifTrue:[INFO] ifFalse:[WARN].
(Smalltalk at:#Logger) isNil ifTrue:[
@@ -210,7 +201,7 @@
!
logOnStderr
- ^ LogOnStderr ? true
+ ^ LogOnStderr
!
logOnStderr:aBoolean
@@ -228,7 +219,7 @@
!
logOnTranscript
- ^ LogOnTranscript ? true
+ ^ LogOnTranscript
!
logOnTranscript:aBoolean
@@ -259,6 +250,10 @@
!MiniLogger class methodsFor:'accessing-severities'!
+severities
+ ^ Severities.
+!
+
severityDEBUG
^ DEBUG
@@ -432,9 +427,7 @@
| severityXlated messageXlated logOnStderr logOnTranscript prevLogOnTranscript |
logOnStderr := self logOnStderr.
- logOnTranscript := self logOnTranscript
- and:[ Transcript notNil
- and:[ Transcript isView ]].
+ logOnTranscript := self logOnTranscript and:[Transcript isView].
(logOnStderr or:[logOnTranscript]) ifFalse:[^ self].
@@ -442,30 +435,16 @@
"/ Be backward compatible, allow for symbolic severities
"/ but when encountered, issue a warning...
- severity isSymbol ifTrue:[
- | nseverities i |
-
- i := 1.
- nseverities := Severities size.
- [ i <= nseverities ] whileTrue:[
- | s |
+ severity isSymbol ifTrue:[
+ severityXlated := Severities detect:[:each| each name == severity] ifNone:[].
- (s := Severities at: i) name = severity ifTrue:[
- | caller |
- severityXlated := s.
- i := nseverities + 1. "/ exit the loop
-
- "/ This will be enabled later, so far it generates
- "/ way to much warnings. at least stx:libjava & exept:jdi has to be rewritten
-
- "/ self log: 'using symbols as severity is deprecated, use Logger severityXXX to get severity object' severity: WARN facility: 'STX' originator: self.
- "/ caller := thisContext sender.
- "/ [ caller notNil and: [ caller receiver ~~ originator ] ] whileTrue:[ caller := caller sender ].
- "/ self log: 'caller is ', caller printString severity: INFO facility: 'STX' originator: self.
-
- ].
- i := i + 1.
- ].
+ "/ This will be enabled later, so far it generates
+ "/ way to much warnings. at least stx:libjava & exept:jdi has to be rewritten
+
+ "/ self log: 'using symbols as severity is deprecated, use Logger severityXXX to get severity object' severity: WARN facility: 'STX' originator: self.
+ "/ caller := thisContext sender.
+ "/ [ caller notNil and: [ caller receiver ~~ originator ] ] whileTrue:[ caller := caller sender ].
+ "/ self log: 'caller is ', caller printString severity: INFO facility: 'STX' originator: self.
].
"/ Now check whether the severity is one of the predefined ones,
@@ -473,18 +452,16 @@
(Severities includesIdentical: severityXlated) ifFalse:[
| caller |
- self log: ('no such severity (%1), use one from predefined severities. Original message will be logged as INFO' bindWith: severityXlated)
+ caller := thisContext sender.
+ [caller notNil and:[caller receiver ~~ originator]] whileTrue:[
+ caller := caller sender
+ ].
+ self log:('no such severity (%1, called from %2), use one from predefined severities. Original message will be logged as INFO' bindWith:severityXlated with:caller)
severity: ERROR facility: 'STX' originator: self.
-
- caller := thisContext sender.
- [
- caller notNil and: [ caller receiver ~~ originator ]
- ] whileTrue:[ caller := caller sender ].
- self log: 'caller is ', caller printString severity: INFO facility: 'STX' originator: self.
severityXlated := INFO.
].
- severityXlated value < Threshold value ifTrue:[ ^ self ].
+ severityXlated < Threshold ifTrue:[ ^ self ].
messageXlated := message value asString.
"/ to avoid recursion, turn off logOnTranscript while logging
@@ -506,7 +483,10 @@
].
"
- Logger log:'test message' severity: #debug facility: 'TEST'
+ Logger log:'test message' severity:self severityINFO facility: 'TEST'
+ Logger log:'test message' severity:#info facility: 'TEST'
+ Logger log:'test message' severity:#bla facility: 'TEST'
+ Logger log:'test message' severity:123 facility: 'TEST'
"
"Created: / 14-09-2011 / 21:18:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -523,336 +503,336 @@
!MiniLogger class methodsFor:'logging - utils'!
debug: message
- DEBUG value < Threshold value ifTrue:[ ^ self ].
+ DEBUG < Threshold ifTrue:[ ^ self ].
self log: message severity: DEBUG originator: thisContext sender receiver
"Modified: / 02-12-2014 / 10:54:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
debug: format with: arg1
- DEBUG value < Threshold value ifTrue:[ ^ self ].
+ DEBUG < Threshold ifTrue:[ ^ self ].
self log: (format bindWith: arg1) severity: DEBUG originator: thisContext sender receiver
"Modified: / 02-12-2014 / 10:54:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
debug: format with: arg1 with: arg2
- DEBUG value < Threshold value ifTrue:[ ^ self ].
+ DEBUG < Threshold ifTrue:[ ^ self ].
self log: (format bindWith: arg1 with: arg2) severity: DEBUG originator: thisContext sender receiver
"Modified: / 02-12-2014 / 10:54:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
debug: format with: arg1 with: arg2 with:arg3
- DEBUG value < Threshold value ifTrue:[ ^ self ].
+ DEBUG < Threshold ifTrue:[ ^ self ].
self log: (format bindWith: arg1 with: arg2 with:arg3) severity: DEBUG originator: thisContext sender receiver
"Modified: / 02-12-2014 / 10:54:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
enter: message
- ENTER value < Threshold value ifTrue:[ ^ self ].
+ ENTER < Threshold ifTrue:[ ^ self ].
self log: message severity: ENTER originator: thisContext sender receiver
"Modified: / 02-12-2014 / 10:54:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
enter: format with: arg1
- ENTER value < Threshold value ifTrue:[ ^ self ].
+ ENTER < Threshold ifTrue:[ ^ self ].
self log: (format bindWith: arg1) severity: ENTER originator: thisContext sender receiver
"Modified: / 02-12-2014 / 10:54:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
enter: format with: arg1 with: arg2
- ENTER value < Threshold value ifTrue:[ ^ self ].
+ ENTER < Threshold ifTrue:[ ^ self ].
self log: (format bindWith: arg1 with: arg2) severity: ENTER originator: thisContext sender receiver
"Modified: / 02-12-2014 / 10:54:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
enter: format with: arg1 with: arg2 with:arg3
- ENTER value < Threshold value ifTrue:[ ^ self ].
+ ENTER < Threshold ifTrue:[ ^ self ].
self log: (format bindWith: arg1 with: arg2 with:arg3) severity: ENTER originator: thisContext sender receiver
"Modified: / 02-12-2014 / 10:54:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
error: message
- ERROR value < Threshold value ifTrue:[ ^ self ].
+ ERROR < Threshold ifTrue:[ ^ self ].
self log: message severity: ERROR originator: thisContext sender receiver
"Modified: / 02-12-2014 / 10:54:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
error: format with: arg1
- ERROR value < Threshold value ifTrue:[ ^ self ].
+ ERROR < Threshold ifTrue:[ ^ self ].
self log: (format bindWith: arg1) severity: ERROR originator: thisContext sender receiver
"Modified: / 02-12-2014 / 10:54:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
error: format with: arg1 with: arg2
- ERROR value < Threshold value ifTrue:[ ^ self ].
+ ERROR < Threshold ifTrue:[ ^ self ].
self log: (format bindWith: arg1 with: arg2) severity: ERROR originator: thisContext sender receiver
"Modified: / 02-12-2014 / 10:54:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
error: format with: arg1 with: arg2 with:arg3
- ERROR value < Threshold value ifTrue:[ ^ self ].
+ ERROR < Threshold ifTrue:[ ^ self ].
self log: (format bindWith: arg1 with: arg2 with:arg3) severity: ERROR originator: thisContext sender receiver
"Modified: / 02-12-2014 / 10:54:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
fatal: message
- FATAL value < Threshold value ifTrue:[ ^ self ].
+ FATAL < Threshold ifTrue:[ ^ self ].
self log: message severity: FATAL originator: thisContext sender receiver
"Modified: / 02-12-2014 / 10:54:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
fatal: format with: arg1
- FATAL value < Threshold value ifTrue:[ ^ self ].
+ FATAL < Threshold ifTrue:[ ^ self ].
self log: (format bindWith: arg1) severity: FATAL originator: thisContext sender receiver
"Modified: / 02-12-2014 / 10:54:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
fatal: format with: arg1 with: arg2
- FATAL value < Threshold value ifTrue:[ ^ self ].
+ FATAL < Threshold ifTrue:[ ^ self ].
self log: (format bindWith: arg1 with: arg2) severity: FATAL originator: thisContext sender receiver
"Modified: / 02-12-2014 / 10:54:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
fatal: format with: arg1 with: arg2 with:arg3
- FATAL value < Threshold value ifTrue:[ ^ self ].
+ FATAL < Threshold ifTrue:[ ^ self ].
self log: (format bindWith: arg1 with: arg2 with:arg3) severity: FATAL originator: thisContext sender receiver
"Modified: / 02-12-2014 / 10:54:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
info: message
- INFO value < Threshold value ifTrue:[ ^ self ].
+ INFO < Threshold ifTrue:[ ^ self ].
self log: message severity: INFO originator: thisContext sender receiver
"Modified: / 02-12-2014 / 10:55:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
info: format with: arg1
- INFO value < Threshold value ifTrue:[ ^ self ].
+ INFO < Threshold ifTrue:[ ^ self ].
self log: (format bindWith: arg1) severity: INFO originator: thisContext sender receiver
"Modified: / 02-12-2014 / 10:55:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
info: format with: arg1 with: arg2
- INFO value < Threshold value ifTrue:[ ^ self ].
+ INFO < Threshold ifTrue:[ ^ self ].
self log: (format bindWith: arg1 with: arg2) severity: INFO originator: thisContext sender receiver
"Modified: / 02-12-2014 / 10:55:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
info: format with: arg1 with: arg2 with:arg3
- INFO value < Threshold value ifTrue:[ ^ self ].
+ INFO < Threshold ifTrue:[ ^ self ].
self log: (format bindWith: arg1 with: arg2 with:arg3) severity: INFO originator: thisContext sender receiver
"Modified: / 02-12-2014 / 10:55:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
leave: message
- LEAVE value < Threshold value ifTrue:[ ^ self ].
+ LEAVE < Threshold ifTrue:[ ^ self ].
self log: message severity: LEAVE originator: thisContext sender receiver
"Modified: / 02-12-2014 / 10:55:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
leave: format with: arg1
- LEAVE value < Threshold value ifTrue:[ ^ self ].
+ LEAVE < Threshold ifTrue:[ ^ self ].
self log: (format bindWith: arg1) severity: LEAVE originator: thisContext sender receiver
"Modified: / 02-12-2014 / 10:55:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
leave: format with: arg1 with: arg2
- LEAVE value < Threshold value ifTrue:[ ^ self ].
+ LEAVE < Threshold ifTrue:[ ^ self ].
self log: (format bindWith: arg1 with: arg2) severity: LEAVE originator: thisContext sender receiver
"Modified: / 02-12-2014 / 10:55:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
leave: format with: arg1 with: arg2 with:arg3
- LEAVE value < Threshold value ifTrue:[ ^ self ].
+ LEAVE < Threshold ifTrue:[ ^ self ].
self log: (format bindWith: arg1 with: arg2 with:arg3) severity: LEAVE originator: thisContext sender receiver
"Modified: / 02-12-2014 / 10:55:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
trace0: message
- TRACE0 value < Threshold value ifTrue:[ ^ self ].
+ TRACE0 < Threshold ifTrue:[ ^ self ].
self log: message severity: TRACE0 originator: thisContext sender receiver
"Modified: / 02-12-2014 / 10:55:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
trace0: format with: arg1
- TRACE0 value < Threshold value ifTrue:[ ^ self ].
+ TRACE0 < Threshold ifTrue:[ ^ self ].
self log: (format bindWith: arg1) severity: TRACE0 originator: thisContext sender receiver
"Modified: / 02-12-2014 / 10:55:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
trace0: format with: arg1 with: arg2
- TRACE0 value < Threshold value ifTrue:[ ^ self ].
+ TRACE0 < Threshold ifTrue:[ ^ self ].
self log: (format bindWith: arg1 with: arg2) severity: TRACE0 originator: thisContext sender receiver
"Modified: / 02-12-2014 / 10:55:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
trace0: format with: arg1 with: arg2 with:arg3
- TRACE0 value < Threshold value ifTrue:[ ^ self ].
+ TRACE0 < Threshold ifTrue:[ ^ self ].
self log: (format bindWith: arg1 with: arg2 with:arg3) severity: TRACE0 originator: thisContext sender receiver
"Modified: / 02-12-2014 / 10:55:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
trace1: message
- TRACE1 value < Threshold value ifTrue:[ ^ self ].
+ TRACE1 < Threshold ifTrue:[ ^ self ].
self log: message severity: TRACE1 originator: thisContext sender receiver
"Modified: / 02-12-2014 / 10:55:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
trace1: format with: arg1
- TRACE1 value < Threshold value ifTrue:[ ^ self ].
+ TRACE1 < Threshold ifTrue:[ ^ self ].
self log: (format bindWith: arg1) severity: TRACE1 originator: thisContext sender receiver
"Modified: / 02-12-2014 / 10:55:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
trace1: format with: arg1 with: arg2
- TRACE1 value < Threshold value ifTrue:[ ^ self ].
+ TRACE1 < Threshold ifTrue:[ ^ self ].
self log: (format bindWith: arg1 with: arg2) severity: TRACE1 originator: thisContext sender receiver
"Modified: / 02-12-2014 / 10:55:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
trace1: format with: arg1 with: arg2 with:arg3
- TRACE1 value < Threshold value ifTrue:[ ^ self ].
+ TRACE1 < Threshold ifTrue:[ ^ self ].
self log: (format bindWith: arg1 with: arg2 with:arg3) severity: TRACE1 originator: thisContext sender receiver
"Modified: / 02-12-2014 / 10:55:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
trace2: message
- TRACE2 value < Threshold value ifTrue:[ ^ self ].
+ TRACE2 < Threshold ifTrue:[ ^ self ].
self log: message severity: TRACE2 originator: thisContext sender receiver
"Modified: / 02-12-2014 / 10:55:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
trace2: format with: arg1
- TRACE2 value < Threshold value ifTrue:[ ^ self ].
+ TRACE2 < Threshold ifTrue:[ ^ self ].
self log: (format bindWith: arg1) severity: TRACE2 originator: thisContext sender receiver
"Modified: / 02-12-2014 / 10:55:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
trace2: format with: arg1 with: arg2
- TRACE2 value < Threshold value ifTrue:[ ^ self ].
+ TRACE2 < Threshold ifTrue:[ ^ self ].
self log: (format bindWith: arg1 with: arg2) severity: TRACE2 originator: thisContext sender receiver
"Modified: / 02-12-2014 / 10:55:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
trace2: format with: arg1 with: arg2 with:arg3
- TRACE2 value < Threshold value ifTrue:[ ^ self ].
+ TRACE2 < Threshold ifTrue:[ ^ self ].
self log: (format bindWith: arg1 with: arg2 with:arg3) severity: TRACE2 originator: thisContext sender receiver
"Modified: / 02-12-2014 / 10:55:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
trace3: message
- TRACE3 value < Threshold value ifTrue:[ ^ self ].
+ TRACE3 < Threshold ifTrue:[ ^ self ].
self log: message severity: TRACE3 originator: thisContext sender receiver
"Modified: / 02-12-2014 / 10:55:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
trace3: format with: arg1
- TRACE3 value < Threshold value ifTrue:[ ^ self ].
+ TRACE3 < Threshold ifTrue:[ ^ self ].
self log: (format bindWith: arg1) severity: TRACE3 originator: thisContext sender receiver
"Modified: / 02-12-2014 / 10:55:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
trace3: format with: arg1 with: arg2
- TRACE3 value < Threshold value ifTrue:[ ^ self ].
+ TRACE3 < Threshold ifTrue:[ ^ self ].
self log: (format bindWith: arg1 with: arg2) severity: TRACE3 originator: thisContext sender receiver
"Modified: / 02-12-2014 / 10:56:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
trace3: format with: arg1 with: arg2 with:arg3
- TRACE3 value < Threshold value ifTrue:[ ^ self ].
+ TRACE3 < Threshold ifTrue:[ ^ self ].
self log: (format bindWith: arg1 with: arg2 with:arg3) severity: TRACE3 originator: thisContext sender receiver
"Modified: / 02-12-2014 / 10:56:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
trace: message
- TRACE value < Threshold value ifTrue:[ ^ self ].
+ TRACE < Threshold ifTrue:[ ^ self ].
self log: message severity: TRACE originator: thisContext sender receiver
"Modified: / 02-12-2014 / 10:56:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
trace: format with: arg1
- TRACE value < Threshold value ifTrue:[ ^ self ].
+ TRACE < Threshold ifTrue:[ ^ self ].
self log: (format bindWith: arg1) severity: TRACE originator: thisContext sender receiver
"Modified: / 02-12-2014 / 10:56:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
trace: format with: arg1 with: arg2
- TRACE value < Threshold value ifTrue:[ ^ self ].
+ TRACE < Threshold ifTrue:[ ^ self ].
self log: (format bindWith: arg1 with: arg2) severity: TRACE originator: thisContext sender receiver
"Modified: / 02-12-2014 / 10:56:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
trace: format with: arg1 with: arg2 with:arg3
- TRACE value < Threshold value ifTrue:[ ^ self ].
+ TRACE < Threshold ifTrue:[ ^ self ].
self log: (format bindWith: arg1 with: arg2 with:arg3) severity: TRACE originator: thisContext sender receiver
"Modified: / 02-12-2014 / 10:56:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
warning: message
- WARN value < Threshold value ifTrue:[ ^ self ].
+ WARN < Threshold ifTrue:[ ^ self ].
self log: message severity: WARN originator: thisContext sender receiver
"Modified: / 02-12-2014 / 10:56:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
warning: format with: arg1
- WARN value < Threshold value ifTrue:[ ^ self ].
+ WARN < Threshold ifTrue:[ ^ self ].
self log: (format bindWith: arg1) severity: WARN originator: thisContext sender receiver
"Modified: / 02-12-2014 / 10:56:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
warning:format with:arg1 with:arg2
- WARN value < Threshold value ifTrue:[ ^ self ].
+ WARN < Threshold ifTrue:[ ^ self ].
self log: (format bindWith: arg1 with: arg2) severity: WARN originator: thisContext sender receiver
"Modified: / 02-12-2014 / 10:56:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
warning:format with:arg1 with:arg2 with:arg3
- WARN value < Threshold value ifTrue:[ ^ self ].
+ WARN < Threshold ifTrue:[ ^ self ].
self log: (format bindWith:arg1 with:arg2 with:arg3) severity: WARN originator: thisContext sender receiver
"Modified: / 02-12-2014 / 10:56:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -883,66 +863,67 @@
!
log: message severity: severity facility: facilityArg originator: originator attachment: attachment on:aStream
- "Pricipal logging method. This mimics VM __stxLog__()"
+ "Principal logging method. This mimics VM __stxLog__()"
- |facility severityName messageProperlyEncoded words messageAsSent|
+ |facility severityName words messageAsSent secondWord|
facility := facilityArg.
- messageProperlyEncoded := message.
+ messageAsSent := message.
severityName := severity name.
- "/ If the message is Unicode 16/32 string and stream is external,
- "/ we have to recode the message using locale-specific encoding
- (message isWideString and:[ aStream isExternalStream ]) ifTrue:[
- OperatingSystem isMSWINDOWSlike ifTrue:[
- messageProperlyEncoded := message utf8Encoded.
- ] ifFalse:[
- messageProperlyEncoded := OperatingSystem encodePath: message.
- ]
- ].
- "/ messageProperlyEncoded := messageProperlyEncoded withoutSeparators.
-
"/ hack to allow calls from infoPrint/errorPrint.
"/ if this is an oldStyle infoPrint or errorPrint, do not append another facility and severity
- words := message asCollectionOfWords.
+ words := messageAsSent asCollectionOfWords.
(words size >= 2
- and:[ words first isAlphaNumeric
- and:[(words second startsWith:$[ )
- and:[(words second endsWith:$] ) or:[(words second endsWith:']:' )]]]]) ifTrue:[
+ and:[words first isAlphaNumeric
+ and:[((secondWord := words second) startsWith:$[ )
+ and:[(secondWord endsWith:$]) or:[(secondWord endsWith:']:')]]]]) ifTrue:[
facility := words first.
- severityName := words second copyButFirst.
+ severityName := secondWord copyButFirst.
severityName := severityName copyTo:(severityName indexOf:$])-1.
- messageProperlyEncoded := messageProperlyEncoded copyFrom:(messageProperlyEncoded indexOf:$])+1.
- "/ messageProperlyEncoded := messageProperlyEncoded withoutSeparators.
- (messageProperlyEncoded startsWith:$:) ifTrue:[
- messageProperlyEncoded := (messageProperlyEncoded copyFrom:2).
- "/ messageProperlyEncoded := messageProperlyEncoded withoutSeparators.
- (messageProperlyEncoded startsWith:Character space) ifTrue:[
- messageProperlyEncoded := (messageProperlyEncoded copyFrom:2).
+ messageAsSent := messageAsSent copyFrom:(messageAsSent indexOf:$])+1.
+ "/ messageAsSent := messageAsSent withoutSeparators.
+ (messageAsSent startsWith:$:) ifTrue:[
+ messageAsSent := messageAsSent copyFrom:2.
+ "/ messageAsSent := messageAsSent withoutSeparators.
+ (messageAsSent startsWith:Character space) ifTrue:[
+ messageAsSent := messageAsSent copyFrom:2.
].
].
].
- messageAsSent := (self logFormat
+
+ messageAsSent :=
+ self logFormat
bindWith:(facility ? 'STX')
with:severityName
with:(Timestamp now printStringFormat:(self timestampFormat))
- with:originator printString
- with:messageProperlyEncoded).
- aStream isView ifFalse:[
- messageAsSent := messageAsSent string utf8Encoded
+ with:originator
+ with:messageAsSent.
+
+ "/ If the message is Unicode 16/32 string and stream is external,
+ "/ we have to recode the message using locale-specific encoding
+ aStream isExternalStream ifTrue:[
+ messageAsSent := messageAsSent string. "take care of Texts"
+ messageAsSent containsNon7BitAscii ifTrue:[
+ OperatingSystem isMSWINDOWSlike ifTrue:[
+ messageAsSent := messageAsSent utf8Encoded.
+ ] ifFalse:[
+ messageAsSent := OperatingSystem encodePath:messageAsSent.
+ ].
+ ].
].
- "/ Timestamp now printOn:aStream format:'%(year)-%(mon)-%(day) %h:%m:%s.%i'.
- "/ aStream space.
aStream nextPutLine: messageAsSent
"
'hello' infoPrintCR.
- Logger log:'test message' severity: #debug facility: 'TEST'
- Logger log:'test message' severity: #info facility: 'TEST'
- Logger log:'test message' severity: #warning facility: 'TEST'
- Logger log:'test message' severity: #error facility: 'TEST'
+ Logger log:'test message' severity: DEBUG facility: 'TEST'
+ Logger log:'test message' severity: INFO facility: 'TEST'
+ Logger log:'test message' asUnicode16String severity: INFO facility: 'TEST'
+ Logger log:'test message äöüß' severity: INFO facility: 'TEST'
+ Logger log:'test message' severity: WARNING facility: 'TEST'
+ Logger log:'test message' severity: ERROR facility: 'TEST'
'test message' infoPrintCR
'test message' errorPrintCR
"
@@ -955,6 +936,23 @@
"Created: / 14-09-2011 / 21:18:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
"Modified: / 02-12-2014 / 10:50:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+severityThresholdOf:originator
+ "allow each class to define an individual threshold for Logging"
+
+ ^ originator class
+ perform:#logSeverityThreshold
+ ifNotUnderstood:[
+ ^ Threshold.
+ ]
+
+ "
+ Logger severityThresholdOf: Object
+ Logger severityThresholdOf: Expecco::Browser
+ "
+
+ "Created: / 15-09-2011 / 10:20:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!MiniLogger::Severity methodsFor:'accessing'!
@@ -967,6 +965,41 @@
^ value
! !
+!MiniLogger::Severity methodsFor:'arithmethic'!
+
++ aNumber
+ |next|
+
+ next := value + aNumber.
+ aNumber negative ifTrue:[
+ ^ MiniLogger severities detectLast:[:each| each = next or:[each < next]] ifNone:[self class new initializeWithName:#nil value:next]
+ ].
+
+ ^ MiniLogger severities detect:[:each| each >= next] ifNone:[self class new initializeWithName:#nil value:next]
+
+ "
+ MiniLogger severityINFO + 1
+ MiniLogger severityTRACE to:MiniLogger severityFATAL do:[:each| Transcript showCR:each].
+ MiniLogger severityFATAL downTo:MiniLogger severityTRACE do:[:each| Transcript showCR:each].
+ "
+! !
+
+!MiniLogger::Severity methodsFor:'comparing'!
+
+< aSeverity
+ ^ value < aSeverity value
+!
+
+= aSeverity
+ ^ self == aSeverity or:[value = aSeverity value]
+!
+
+hash
+ "instances, for which #= answers true must answer the same hash"
+
+ ^ value hash
+! !
+
!MiniLogger::Severity methodsFor:'initialization'!
initializeWithName: aString value: anInteger