--- a/MiniLogger.st Thu Oct 10 22:15:24 2019 +0200
+++ b/MiniLogger.st Sat Oct 12 14:35:20 2019 +0200
@@ -1,5 +1,3 @@
-"{ Encoding: utf8 }"
-
"
COPYRIGHT (c) 2012-2014 by Jan Vrany & eXept Software AG
All Rights Reserved
@@ -608,19 +606,19 @@
"Modified (format): / 24-05-2019 / 00:25:09 / Claus Gittinger"
!
-log:message severity:severity facility:facilityArg originator:originator attachment:attachment
+log:message severity:severityOrSymbol facility:facilityArg originator:originator attachment:attachment
"Pricipal logging method. This mimics VM __stxLog__()"
- | severityXlated messageXlated prevLogOnTranscript facility severityName words secondWord|
+ | severity messageXlated prevLogOnTranscript facility severityName words secondWord|
(self canLog) ifFalse:[^ self].
- severityXlated := severity.
+ severity := severityOrSymbol.
- severityXlated isSymbol ifTrue:[
+ severity isSymbol ifTrue:[
"/ Be backward compatible, allow for symbolic severities
"/ but when encountered, issue a warning...
- severityXlated := Severities detect:[:each| each name == severityXlated] ifNone:[].
+ severity := Severities detect:[:each| each name == severity] ifNone:[].
"/ This will be enabled later, so far it generates
"/ way to much warnings. at least stx:libjava & exept:jdi has to be rewritten
@@ -632,16 +630,16 @@
] ifFalse:[
"/ Now check whether the severity is one of the predefined ones,
"/ if not, issue an error
- (Severities includesIdentical:severityXlated) ifFalse:[
+ (Severities includesIdentical:severity) ifFalse:[
| caller |
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)
+ self log:('no such severity (%1, called from %2), use one from predefined severities. Original message will be logged as INFO' bindWith:severity with:caller)
severity: ERROR facility: 'STX' originator: self.
- severityXlated := INFO.
+ severity := INFO.
].
].
@@ -657,8 +655,10 @@
and:[(secondWord endsWith:$]) or:[(secondWord endsWith:']:')]]]]) ifTrue:[
facility := words first.
severityName := secondWord copyFrom:2 to:(secondWord indexOf:$])-1.
- severityXlated := Severities detect:[:each| each name = severityName]
- ifNone:[Severity new initializeWithName:severityName value:severity value].
+ severity := Severities detect:[:each| each name = severityName]
+ ifNone:[Severity new
+ initializeWithName:severityName
+ value:severityOrSymbol value].
messageXlated := messageXlated copyFrom:(messageXlated indexOf:$])+1.
(messageXlated startsWith:$:) ifTrue:[
@@ -671,9 +671,9 @@
"/ a quick rejector to avoid overhead in deployed apps
(ThresholdPerClass isNil and:[ThresholdPerPackage isNil]) ifTrue:[
- (Threshold > severityXlated) ifTrue:[ ^ self ].
+ (Threshold > severity) ifTrue:[ ^ self ].
] ifFalse:[
- ((self severityThresholdOf:originator) > severityXlated) ifTrue:[^ self ].
+ ((self severityThresholdOf:originator) > severity) ifTrue:[^ self ].
].
thisContext isRecursive ifTrue:[
@@ -688,16 +688,26 @@
[
LogOnTranscript := false.
- self basicLog:messageXlated severity:severityXlated facility:facility
+ self basicLog:messageXlated severity:severity facility:facility
originator:originator attachment:attachment.
(prevLogOnTranscript and:[Transcript isView]) ifTrue:[
- Transcript
- nextPutAll:facility;
- nextPutAll:' [';
- nextPutAll:severityXlated printString;
- nextPutAll:']: ';
- nextPutLine:messageXlated.
+ |msg|
+
+ msg := '%1 [%2]: %3'
+ bindWith:facility
+ with:severity
+ with:messageXlated.
+
+ severity >= WARNING ifTrue:[
+ severity >= ERROR ifTrue:[
+ msg := msg withColor:Color red.
+ ] ifFalse:[
+ msg := msg withColor:Color orange.
+ ].
+ ].
+
+ Transcript nextPutLine:msg.
].
] ensure:[
LogOnTranscript := prevLogOnTranscript.
@@ -712,7 +722,7 @@
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: INFO facility: 'TEST'
Logger log:'test message' severity: WARNING facility: 'TEST'
Logger log:'test message' severity: ERROR facility: 'TEST'
'test message' infoPrintCR