#nop vim: set filetype=tt:; /* 模块名称:日志模块 模块说明:本文件属于框架代码的一部分,不建议修改。如有需求请在 GitHub 发 issue 或者 PR 版权声明:本文件属于 PaoTin++ 的一部分 =========== PaoTin++ © 2020~2023 的所有版权均由担子炮(dzp ) 享有并保留一切法律权利 你可以在遵照 GPLv3 协议的基础之上使用、修改及重新分发本程序。 =========== */ #var gLog[buffer] {buffer.log}; #var gLog[socket] {socket.log}; #var gLog[info] {info.log}; #var gLog[ok] {ok.log}; #var gLog[warn] {warn.log}; #var gLog[error] {error.log}; #var gLog[debug] {debug.log}; #var gLog[PATH] {log}; #var gLog[initialled] {false}; #func {InitLog} { #local path {%1}; #if { @existsDir{var} } { #var gLog[PATH] {var/log}; }; #else { #var gLog[PATH] {log}; }; #if { !@mkdir{$gLog[PATH]/$path} } { #return 0; }; #var gLog[PATH] {$gLog[PATH]/$path}; #var gLog[initialled] {true}; load-lib option; option.Define {EchoCommand} {Bool} {是否回显发送的命令} {false}; option.Define {DebugLog} {Bool} {是否开启调试日志} {false}; option.Define {DebugLogEcho} {Bool} {是否显示调试日志} {false}; option.Define {DebugTags} {Slist} {记录调试日志的 tag 列表} {}; #return 1; }; #alias {mudLog} {log.write {$gLog[socket]} {%0}}; #alias {okLog} {log.write {$gLog[ok]} {<129>%0} {ECHO}}; #alias {warnLog} {log.write {$gLog[warn]} {<139>%0} {ECHO}}; #alias {errLog} {log.write {$gLog[error]} {<119>%0} {ECHO}}; #alias {infoLog} {log.write {$gLog[info]} {%0} {ECHO}}; #alias {dbgLog} { #local tag {%1}; #if { @option.IsDisable{DebugLog} } { #return; }; #local echo {}; #if { @option.IsEnable{DebugLogEcho} } { #local echo {ECHO}; }; #if { @slist.Contains{{@option.Get{DebugTags}};$tag} } { log.write {$gLog[debug]} {<850>%0<999>} {$echo}; }; }; #alias {noLog} {#0}; #alias {{[a-z]{1,10}}Log %*} { #local logName {}; #format logName {%l} {%1}; log.write {${logName}.log} {%2}; }; #alias {log.write} { #local file {%1}; #local text {%2}; #local echo {%3}; #if { "$gLog[initialled]" != "true" } {#return}; #line logmode stamp #line log {$gLog[PATH]/$file} {$text<099>}; #if { "$echo" == "ECHO" } { #echo {%s} {$text<099>}; }; }; #event {RECEIVED INPUT} { #if { "$gLog[initialled]" != "true" } {#return}; #local needEcho {false}; #if @option.IsDisable{EchoCommand} { #local needEcho {true}; }; #else { #line sub escape #var tmp {%0}; #local cmds {}; #list cmds create {$tmp}; #if { &cmds[] > 1 } { #local needEcho {true}; }; }; #if { "$needEcho" == "true" } { #local input {%0}; #replace input {<} {\<}; #echo {<029>%t INPUT: <429>%s<099>} {%Y-%m-%d %H:%M:%S} {$input}; }; }; #alias {log.Open} { #if { "$gLog[initialled]" != "true" } {#return}; #config {LOG} {RAW}; #config {LOG LEVEL} {HIGH}; #log timestamp {%Y-%m-%d %H:%M:%S }; #log append {$gLog[PATH]/$gLog[buffer]}; #event {RECEIVED LINE} {mudLog %%0}; #event {SEND OUTPUT} {log.sendLog %%0}; }; #alias {log.sendLog} { #local text {%0}; #replace text {<} {\<}; #format text {<029>SEND: <429>%p<099>} {$text}; mudLog $text; #if @option.IsEnable{EchoCommand} { #echo {<029>%t %s} {%Y-%m-%d %H:%M:%S} {$text}; }; };