MiniLogger.st
changeset 24829 dc443836dfef
parent 24776 d375feebf938
child 24830 f31adcad8aed
--- 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