loggerappender.tcl

来自「Linux下的MSN聊天程序源码」· TCL 代码 · 共 336 行

TCL
336
字号
##Library Header## $Id: loggerAppender.tcl 5912 2006-01-23 11:45:49Z tjikkun $# Copyright (c) 2005 Cisco Systems, Inc.## Name:#	::logger::appender## Purpose:#	collection of appenders for tcllib logger## Author:#	 Aamer Akhter / aakhter@cisco.com## Support Alias:#       aakhter@cisco.com## Usage:#	package require logger::appender## Description:#	set of logger templates#      # Requirements:#       package require logger#       package require md5## Variables:#       namespace   ::loggerExtension::#       id:         CVS ID: keyword extraction#       version:    current version of package#       packageDir: directory where package is located#       log:        instance log## Notes:#       1.	## Keywords:#	## Category: #       ## End of Headerpackage require md5namespace eval ::logger::appender {    variable  fgcolor    array set fgcolor {	red      {31m}	red-bold {1;31m}	black    {m}	blue     {1m}	green    {32m}	yellow   {33m}	cyan     {36m}    }    variable  levelToColor    array set levelToColor {	debug    cyan	info     blue	notice   black	warn     red	error    red	critical red-bold    }}##Procedure Header# $Id: loggerAppender.tcl 5912 2006-01-23 11:45:49Z tjikkun $# Copyright (c) 2005 Cisco Systems, Inc.## Name:#	::logger::appender::console## Purpose:#	 ## Synopsis:#       ::logger::appender::console -level <level> -service <service> [options]## Arguments:#       -level <level>#            name of level to fill in as 'priority' in log proc#       -service <service>#            name of service to fill in as 'category' in log proc#       -appenderArgs <appenderArgs>#            any additional args in list form#       -conversionPattern <conversionPattern>#            log pattern to use (see genLogProc)#       -procName <procName>#            explicitly set the proc name#       -procNameVar <procNameVar>#            name of variable to set in the calling context#            variable has name of proc ### Return Values:#	a runnable command ## Description:#         ## Examples:#	## Notes:#	1.## End of Procedure Header proc ::logger::appender::console {args} {    set usage {console 	?-level level?	?-service service? 	?-appenderArgs appenderArgs?    }    set bargs $args    set conversionPattern {\[%d\] \[%c\] \[%M\] \[%p\] %m}    while {[llength $args] > 1} {        set opt [lindex $args 0]        set args [lrange $args 1 end]        switch  -exact -- $opt {            -level { set level [lindex $args 0]		set args [lrange $args 1 end]	    }	    -service { set service [lindex $args 0]		set args [lrange $args 1 end]	    }	    -appenderArgs {		set appenderArgs [lindex $args 0]		set args [lrange $args 1 end]		set args [concat $args $appenderArgs]	    }	    -conversionPattern {		set conversionPattern [lindex $args 0]		set args [lrange $args 1 end]	    }	    -procName {		set procName [lindex $args 0]		set args [lrange $args 1 end]	    }	    -procNameVar {		set procNameVar [lindex $args 0]		set args [lrange $args 1 end]	    }            default {                return -code error [msgcat::mc "Unknown argument: \"%s\" :\nUsage:\                %s" $opt $usage]            }        }    }    if {![info exist procName]} {	set procName [genProcName $bargs]    }    if {[info exist procNameVar]} {	upvar $procNameVar myProcNameVar    }    set procText \	[ ::logger::utils::createLogProc \	      -procName $procName \	      -conversionPattern $conversionPattern \	      -category $service \	      -priority $level ]    set myProcNameVar $procName    return $procText}##Procedure Header# $Id: loggerAppender.tcl 5912 2006-01-23 11:45:49Z tjikkun $# Copyright (c) 2005 Cisco Systems, Inc.## Name:#	::logger::appender::colorConsole## Purpose:#	 ## Synopsis:#       ::logger::appender::console -level <level> -service <service> [options]## Arguments:#       -level <level>#            name of level to fill in as 'priority' in log proc#       -service <service>#            name of service to fill in as 'category' in log proc#       -appenderArgs <appenderArgs>#            any additional args in list form#       -conversionPattern <conversionPattern>#            log pattern to use (see genLogProc)#       -procName <procName>#            explicitly set the proc name#       -procNameVar <procNameVar>#            name of variable to set in the calling context#            variable has name of proc ### Return Values:#	a runnable command ## Description:#       provides colorized logs## Examples:#	## Notes:#	1.## End of Procedure Header proc ::logger::appender::colorConsole {args} {    variable fgcolor    set usage {console 	?-level level?	?-service service? 	?-appenderArgs appenderArgs?    }    set bargs $args    set conversionPattern {\[%d\] \[%c\] \[%M\] \[%p\] %m}    upvar 0 ::logger::appender::levelToColor colorMap    while {[llength $args] > 1} {        set opt [lindex $args 0]        set args [lrange $args 1 end]        switch  -exact -- $opt {            -level { set level [lindex $args 0]		set args [lrange $args 1 end]	    }	    -service { set service [lindex $args 0]		set args [lrange $args 1 end]	    }	    -appenderArgs {		set appenderArgs [lindex $args 0]		set args [lrange $args 1 end]		set args [concat $args $appenderArgs]	    }	    -conversionPattern {		set conversionPattern [lindex $args 0]		set args [lrange $args 1 end]	    }	    -procName {		set procName [lindex $args 0]		set args [lrange $args 1 end]	    }	    -procNameVar {		set procNameVar [lindex $args 0]		set args [lrange $args 1 end]	    }            default {                return -code error [msgcat::mc "Unknown argument: \"%s\" :\nUsage:\                %s" $opt $usage]            }        }    }    if {![info exist procName]} {	set procName [genProcName $bargs]    }    upvar $procNameVar myProcNameVar    if {[info exist level]} {	#apply color	set colorCode $colorMap($level)	append newCPattern {\033\[} $fgcolor($colorCode) $conversionPattern {\033\[0m}	set conversionPattern $newCPattern    }    set procText \	[ ::logger::utils::createLogProc \	      -procName $procName \	      -conversionPattern $conversionPattern \	      -category $service \	      -priority $level ]    set myProcNameVar $procName    return $procText}##Internal Procedure Header# $Id: loggerAppender.tcl 5912 2006-01-23 11:45:49Z tjikkun $# Copyright (c) 2005 Cisco Systems, Inc.## Name:#       ::logger::appender::genProcName## Purpose:#        ## Synopsis:#       ::logger::appender::genProcName <args>## Arguments:#       <formatString>#            string composed of formatting chars (see description)### Return Values:#       a runnable command ## Description:#         ## Examples:#       ::loggerExtension::new param1#       ::loggerExtension::new param2#       ::loggerExtension::new param3 <option1>### Sample Input:#       (Optional) Sample of input to the proc provided by its argument values.## Sample Output:#       (Optional) For procs that output to files, provide #       sample of format of output produced.# Notes:#       1.## End of Procedure Header proc ::logger::appender::genProcName {args} {    set name [md5::md5 -hex $args]    return "::logger::appender::logProc-$name"}package provide logger::appender 1.2# ;;; Local Variables: ***# ;;; mode: tcl ***# ;;; End: ***

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?