snit-logger.tcl

Go to the documentation of this file.
00001 /* */
00002 /*      Logger Utilities - SNIT wrapper for logger*/
00003 /*      */
00004 /*      A SNIT type to wrap logger*/
00005 /*      */
00006 /*      (c) 2005 Michael Schlenker <mic42@users.sourceforge.net>*/
00007 /*      */
00008 /*      $Id: snit-logger.tcl,v 1.2 2005/04/27 02:40:40 andreas_kupries Exp $*/
00009 /* */
00010 /* */
00011 
00012 package require snit
00013 package require logger
00014 
00015 namespace ::logger::snit {
00016     
00017     snit::type Logger {
00018         variable loggertoken ""
00019         option -servicename -configureret  servicenameconf 
00020         option -loglevel -default debug -configuremethod loglevelconf
00021 
00022         delegate method * using "%s _indirect %m"         
00023         constructor (type args) {
00024             $self configurelist $args            
00025             ${loggertoken}::setlevel $options(-loglevel)
00026 
00027         }
00028     
00029         destructor {
00030             ${loggertoken}::delete
00031         }
00032 
00033         ret  log (type level , type args) {
00034             eval [linsert $args 0 ${loggertoken}::${level}]   
00035         }     
00036         
00037         ret  _indirect (type cmd , type args) {
00038             eval [linsert $args 0 ${loggertoken}::${cmd}]
00039         }
00040         
00041         ret  servicenameconf (type opt , type val) {
00042             if {$loggertoken != ""} {
00043                 ${loggertoken}::delete
00044             }
00045             
00046             if {$val != ""} {
00047             if {[lsearch -exact [logger::services] $val] == -1} {
00048                 set loggertoken [logger::init $val]
00049                 set options(-servicename) $val
00050             } else {
00051                 set loggertoken [logger::servicecmd $val]
00052                 set options(-servicename) $val
00053             }
00054             }
00055         }
00056         
00057         ret  loglevelconf (type opt , type val) {
00058             set options($opt) $val
00059             if {$loggertoken != ""} {
00060                 ${loggertoken}::setlevel $val
00061             }
00062         }
00063     }
00064 }
00065 
00066 package provide ::logger::snit 0.1
00067 

Generated on 21 Sep 2010 for Gui by  doxygen 1.6.1