Download Reference Manual
The Developer's Library for D
About Wiki Forums Source Search Contact

Changeset 3029

Show
Ignore:
Timestamp:
12/13/07 01:07:25 (1 year ago)
Author:
kris
Message:

adjusted the Log subsystem to support dynamic log-levels, based upon the work from Stonecobra. Added his example also. Major kudos to Stonecobra for this - an awesome feature!

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/tango/util/log/EventLayout.d

    r3026 r3029  
    9595        char[] header (Event event) 
    9696        { 
    97                 event.append(event.getName).append(" - "); 
     97                event.append(event.getName).append(event.getHierarchy.context.label).append(" - "); 
    9898                return event.getContent; 
    9999        } 
     
    119119                event.append (event.getLevelName) 
    120120                     .append (event.getName) 
     121                     .append(event.getHierarchy.context.label) 
    121122                     .append (" - "); 
    122123                return event.getContent; 
     
    147148                     .append (event.getLevelName) 
    148149                     .append (event.getName) 
     150                     .append(event.getHierarchy.context.label) 
    149151                     .append (" - "); 
    150152                return event.getContent; 
    151153        } 
    152154} 
    153  
    154  
    155 /******************************************************************************* 
    156  
    157         A simple layout comprised only of time(ms), level, name, message,  
    158         and label from the Context. 
    159  
    160 *******************************************************************************/ 
    161  
    162 public class SimpleTimerContextLayout : EventLayout 
    163 { 
    164         /*********************************************************************** 
    165          
    166                 Format outgoing message 
    167  
    168         ***********************************************************************/ 
    169  
    170         char[] header (Event event) 
    171         { 
    172                 char[20] tmp; 
    173  
    174                 event.append (toMilli (tmp, event.getSpan)) 
    175                      .append (" ") 
    176                      .append (event.getLevelName) 
    177                      .append (event.getName) 
    178                      .append (event.getHierarchy.getContext.label) 
    179                      .append (" - "); 
    180                 return event.getContent; 
    181         } 
    182 } 
  • trunk/tango/util/log/Hierarchy.d

    r3026 r3029  
    160160        final bool isEnabled (Level level = Level.Fatal) 
    161161        { 
    162                 return hierarchy.context.enabled (level_, level); 
     162                return hierarchy.context.isEnabled (level_, level); 
    163163        } 
    164164 
     
    364364        final Logger append (Level level, lazy char[] exp) 
    365365        { 
    366                 if (hierarchy.context.enabled (level_, level)) 
     366                if (hierarchy.context.isEnabled (level_, level)) 
    367367                   { 
    368368                   auto event = Event.allocate; 
     
    457457        private LoggerInstance          root; 
    458458        private LoggerInstance[char[]]  loggers; 
    459         private Context                 context
     459        private Context                 context_
    460460 
    461461        /*********************************************************************** 
     
    481481        final char[] label () 
    482482        { 
    483                 return "<label>"; 
     483                return ""; 
    484484        } 
    485485                 
     
    489489        **********************************************************************/ 
    490490 
    491         final bool enabled (ILevel.Level level, ILevel.Level test) 
     491        final bool isEnabled (ILevel.Level level, ILevel.Level test) 
    492492        { 
    493493                return test >= level; 
     
    548548        **********************************************************************/ 
    549549         
    550         final void setContext (Context context) 
    551         { 
    552             this.context = context; 
     550        final void context (Context context) 
     551        { 
     552            this.context_ = context; 
    553553        } 
    554554         
     
    560560        **********************************************************************/ 
    561561         
    562         final Context getContext () 
    563         { 
    564             return context
     562        final Context context () 
     563        { 
     564            return context_
    565565        } 
    566566         
  • trunk/tango/util/log/Log.d

    r2809 r3029  
    3030*******************************************************************************/ 
    3131 
    32 class Log  
     32class Log : ILevel 
    3333{ 
    3434        static private  Hierarchy base; 
  • trunk/tango/util/log/model/IHierarchy.d

    r3026 r3029  
    4747        ***********************************************************************/ 
    4848 
    49         void setContext (Context context); 
     49        void context (Context context); 
    5050 
    5151        /*********************************************************************** 
     
    5555        ***********************************************************************/ 
    5656 
    57         Context getContext (); 
     57        Context context (); 
    5858 
    5959        /*********************************************************************** 
     
    6767        interface Context 
    6868        { 
     69                /// return a label for this context 
    6970                char[] label (); 
    7071                 
    71                 bool enabled (ILevel.Level setting, ILevel.Level target); 
     72                /// first arg is the setting of the logger itself, and 
     73                /// the second arg is what kind of message we're being 
     74                /// asked to produce 
     75                bool isEnabled (ILevel.Level setting, ILevel.Level target); 
    7276        } 
    7377}