log.tin 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. #nop vim: set filetype=tt:;
  2. /*
  3. 模块名称:日志模块
  4. 模块说明:本文件属于框架代码的一部分,不建议修改。如有需求请在 GitHub 发 issue 或者 PR
  5. 版权声明:本文件属于 PaoTin++ 的一部分
  6. ===========
  7. PaoTin++ © 2020~2023 的所有版权均由担子炮(dzp <danzipao@gmail.com>) 享有并保留一切法律权利
  8. 你可以在遵照 GPLv3 协议的基础之上使用、修改及重新分发本程序。
  9. ===========
  10. */
  11. #var gLog[buffer] {buffer.log};
  12. #var gLog[socket] {socket.log};
  13. #var gLog[info] {info.log};
  14. #var gLog[ok] {ok.log};
  15. #var gLog[warn] {warn.log};
  16. #var gLog[error] {error.log};
  17. #var gLog[debug] {debug.log};
  18. #var gLog[PATH] {log};
  19. #func {InitLog} {
  20. #local path {%1};
  21. #local output {};
  22. #script output {test -d var && echo true || echo false};
  23. #if { "$output[1]" == "true" } {
  24. #var gLog[PATH] {var/log};
  25. };
  26. #else {
  27. #var gLog[PATH] {log};
  28. };
  29. #if { !@mkdir{$gLog[PATH]/$path} } {
  30. #return 0;
  31. };
  32. #var gLog[PATH] {$gLog[PATH]/$path};
  33. load-lib option;
  34. option.Define {EchoCommand} {Bool} {是否回显发送的命令} {false};
  35. #return 1;
  36. };
  37. #alias {mudLog} {log.write {$gLog[socket]} {%0}};
  38. #alias {okLog} {log.write {$gLog[ok]} {<120>%0} {ECHO}};
  39. #alias {warnLog} {log.write {$gLog[warn]} {<130>%0} {ECHO}};
  40. #alias {errLog} {log.write {$gLog[error]} {<110>%0} {ECHO}};
  41. #alias {infoLog} {log.write {$gLog[info]} {%0} {ECHO}};
  42. #alias {dbgLog} {log.write {$gLog[debug]} {%0}};
  43. #alias {{[a-z]{1,10}}Log %*} {
  44. #local logName {};
  45. #format logName {%l} {%1};
  46. log.write {${logName}.log} {%2};
  47. };
  48. #alias {log.write} {
  49. #local file {%1};
  50. #local text {%2};
  51. #local echo {%3};
  52. #line logmode stamp #line log {$gLog[PATH]/$file} {$text<070>};
  53. #if { "$echo" == "ECHO" } {
  54. #echo {%s} {$text<070>};
  55. };
  56. };
  57. #event {RECEIVED INPUT} {
  58. #local needEcho {false};
  59. #if @option.IsDisable{EchoCommand} {
  60. #local needEcho {true};
  61. };
  62. #else {
  63. #line sub escape #var tmp {%0};
  64. #local cmds {};
  65. #list cmds create {$tmp};
  66. #if { &cmds[] > 1 } {
  67. #local needEcho {true};
  68. };
  69. };
  70. #if { "$needEcho" == "true" } {
  71. #local input {%0};
  72. #replace input {<} {\<};
  73. #echo {<020>%t INPUT: <420>%s<070>} {%Y-%m-%d %H:%M:%S} {$input};
  74. };
  75. };
  76. #alias {log.Open} {
  77. #config {LOG} {RAW};
  78. #config {LOG LEVEL} {HIGH};
  79. #log timestamp {%Y-%m-%d %H:%M:%S };
  80. #log append {$gLog[PATH]/$gLog[buffer]};
  81. #event {RECEIVED LINE} {mudLog %%0};
  82. #event {SEND OUTPUT} {log.sendLog %%0};
  83. };
  84. #alias {log.sendLog} {
  85. #local text {%0};
  86. #replace text {<} {\<};
  87. #format text {<020>SEND: <420>%p<070>} {$text};
  88. mudLog $text;
  89. #if @option.IsEnable{EchoCommand} {
  90. #echo {<020>%t %s} {%Y-%m-%d %H:%M:%S} {$text};
  91. };
  92. };