xotcl-logger.tcl

Go to the documentation of this file.
00001 /* */
00002 /*      Logger Utilities - XOTcl wrapper for logger*/
00003 /*      */
00004 /*      A XOTcl class to wrap logger*/
00005 /*      */
00006 /*      (c) 2005 Michael Schlenker <mic42@users.sourceforge.net>*/
00007 /*      */
00008 /*      $Id: xotcl-logger.tcl,v 1.2 2005/04/27 02:40:41 andreas_kupries Exp $*/
00009 /* */
00010 /* */
00011 
00012 package require XOTcl
00013 package require logger
00014 
00015 namespace ::logger::xotcl {
00016     
00017 ::xotcl::Class Logger -parameter { {servicename -ter =  _servicenameter = 
00018                                                -getter _servicenamegetter}
00019                                    {loglevel debug -ter =  _loglevelter = 
00020                                                 -getter _loglevelgetter}} 
00021 
00022 Logger instret  init (type args) {
00023     ::xotcl::next
00024 }
00025     
00026 Logger instret  destroy (type args) {
00027     [::xotcl::my  set loggertoken]::delete
00028     ::xotcl::next
00029 }
00030 
00031 Logger instret  log (type level , type args) {
00032     eval [linsert $args 0 [::xotcl::my set loggertoken]::${level}]   
00033 }     
00034         
00035 Logger instret  _servicenamesetter (type opt , type val) {
00036     puts "Servicesetter: $opt / $val"
00037     if {[llength [::xotcl::my info vars loggertoken]]} {
00038         if {[::xotcl::my set loggertoken] != ""} {
00039             [::xotcl::my set loggertoken]::delete
00040         }
00041     } else {
00042         ::xotcl::my set loggertoken ""
00043     }
00044     
00045     if {$val != ""} {
00046         if {[lsearch -exact [logger::services] $val] == -1} {
00047             ::xotcl::my set loggertoken [logger::init $val]
00048             ::xotcl::my set servicename $val
00049         } else {
00050             ::xotcl::my set loggertoken [logger::servicecmd $val]
00051             ::xotcl::my set servicename $val
00052         }
00053         
00054         if {[llength [::xotcl::my info vars loglevel]]} {
00055             [::xotcl::my set loggertoken]::setlevel [::xotcl::my set loglevel]
00056         }
00057     }
00058     puts "Token set to [::xotcl::my set loggertoken]"
00059     return $val
00060 }
00061 
00062 Logger instret  _servicenamegetter (type opt) {
00063     return [::xotcl::my set servicename]
00064 }
00065 
00066 Logger instret  _loglevelsetter (type opt , type val) {
00067     puts "Loglevel: $opt / $val"
00068     if {[::xotcl::my set loggertoken] ne ""} {
00069         puts "Setting loglevel for loggertoken [::xotcl::my set loggertoken] to $val"
00070         [::xotcl::my set loggertoken]::setlevel $val
00071     }
00072     ::xotcl::my set loglevel $val
00073 }
00074 
00075 Logger instret  _loglevelgetter (type opt) {
00076     if {[::xotcl::my set loggertoken] ne ""} {
00077         return [[::xotcl::my set loggertoken]::currentloglevel]
00078     } else {
00079         return
00080     }
00081 }
00082 
00083 Logger instret  logproc (type args) {
00084     eval [linsert $args 0 [::xotcl::my set loggertoken]::logproc]       
00085 }
00086 
00087 Logger instret  services () {
00088     return [[::xotcl::my set loggertoken]::services]
00089 }
00090 
00091 Logger instret  delproc (type args) {
00092     eval [linsert $args 0 [::xotcl::my set loggertoken]::delproc]
00093 }
00094 
00095 }
00096 
00097 package provide ::logger::xotcl 0.1
00098 

Generated on 21 Sep 2010 for Gui by  doxygen 1.6.1