logger_plugin
TSL语言的跨平台实现的日志插件。
安装
(已集成到mytsl
发行版中)
动态库文件:logger_plugin.dll或者liblogger_plugin.so。
把相关的动态库文件拷贝到执行服务器或者TSL目录的plugin目录。
(如果需要下载兼容正式版的Windows版本的动态库文件请访问这里)。
使用指南
提供的TSL函数:
log_init
log_init(file)
: 用指定的log文件初始化。不初始化的话,默认是输出到控制台。
-
参数列表
参数 描述 file 日志文件路径 支持魔法参数:
魔法参数 描述 @console(0) 关闭控制台输出,默认是文件和控制台同时输出。 @daily(1) log文件名自动加日期,并按天来记录。 @color(1) 控制台支持打印颜色。 @utf8(1) 将日志文件和内容转成utf8格式(在Linux下面方便查看) -
返回值 成功返回1,否则返回0
- 例子
如果不调用log_init
就进行日志,将会打印到控制台。
log_set_level
log_set_level(level)
: 设置log的level。
-
参数列表
参数 描述 level 日志级别 日志级别:
level 值 trace 0 debug 1 info 2 warning 3 error 4 critical 5 off 6 "off" 是关闭log输出。
-
返回值 返回当前level的单字母简写。
-
例子
log_set_pattern
log_set_pattern(pattern)
: 设置输出样式。默认样式是:"[%Y-%m-%d %H:%M:%S][%L] %v"
-
参数列表
参数 描述 pattern 样式
支持的样式参见附录。
-
返回值 总是返回1
-
例子
log_flush
log_flush()
: 刷新输出。
- 参数列表 无
-
返回值 无
-
例子
log_flush_on
log_flush_on(level)
: 设置刷新输出的级别。
-
参数列表
参数 描述 level 日志级别 -
返回值 无
- 例子
log_trace
log_trace(format, ...)
: log trace消息。
-
参数列表
参数 描述 format 格式,具体格式请参见附录 -
返回值 日志成功返回1,否则返回0
- 例子
log_debug
log_debug(format, ...)
: log debug消息。
-
参数列表
参数 描述 format 格式,具体格式请参见附录 -
返回值 日志成功返回1,否则返回0
- 例子
log_info
log_info(format, ...)
: log info消息。
-
参数列表
参数 描述 format 格式,具体格式请参见附录 -
返回值 日志成功返回1,否则返回0
- 例子
log_warn
log_warn(format, ...)
: log warn消息。
-
参数列表
参数 描述 format 格式,具体格式请参见附录 -
返回值 日志成功返回1,否则返回0
- 例子
log_error
log_error(format, ...)
: log error消息。
-
参数列表
参数 描述 format 格式,具体格式请参见附录 -
返回值 日志成功返回1,否则返回0
- 例子
log_critical
log_critical(format, ...)
: log critical消息。
-
参数列表
参数 描述 format 格式,具体格式请参见附录 -
返回值 日志成功返回1,否则返回0
- 例子
log_init_ex
log_init_ex(name, file)
: 用指定的log文件初始化命名的logger。
-
参数列表
参数 描述 name 名称 file 日志文件路径 系统保留了
default
和console
这两个名称,不能用于自定义日志的名称。支持魔法参数:
魔法参数 描述 @console(0) 关闭控制台输出,默认是文件和控制台同时输出。 @daily(1) log文件名自动加日期,并按天来记录。 @color(1) 控制台支持打印颜色。 @utf8(1) 将日志文件和内容转成utf8格式(在Linux下面方便查看) -
返回值 成功返回1,否则返回0
- 例子
log_set_level_ex
log_set_level_ex(name, level)
: 设置log的level。
-
参数列表
参数 描述 name 名称 level 日志级别 日志级别:
level 值 trace 0 debug 1 info 2 warning 3 error 4 critical 5 off 6 "off" 是关闭log输出。
-
返回值 返回当前level的单字母简写。
-
例子
log_set_pattern_ex
log_set_pattern_ex(name, pattern)
: 设置输出样式。默认样式是:"[%Y-%m-%d %H:%M:%S][%L] %v"
-
参数列表
参数 描述 name 名称 pattern 样式
支持的样式参见附录。
-
返回值 总是返回1
-
例子
log_flush_ex
log_flush_ex(name)
: 刷新输出。
-
参数列表
参数 描述 name 名称 -
返回值 无
-
例子
log_flush_on_ex
log_flush_on_ex(name, level)
: 设置刷新输出的。
-
参数列表
参数 描述 name 名称 level 日志级别 -
返回值 无
- 例子
log_trace_ex
log_trace_ex(name, format, ...)
: log trace消息。
-
参数列表
参数 描述 name 名称 format 格式,具体格式请参见附录 -
返回值 日志成功返回1,否则返回0
- 例子
log_debug_ex
log_debug_ex(name, format, ...)
: log debug消息。
-
参数列表
参数 描述 name 名称 format 格式,具体格式请参见附录 -
返回值 日志成功返回1,否则返回0
-
例子
log_info_ex
log_info(name, format, ...)
: log info消息。
-
参数列表
参数 描述 name 名称 format 格式,具体格式请参见附录 -
返回值 日志成功返回1,否则返回0
- 例子
log_warn_ex
log_warn_ex(name, format, ...)
: log warn消息。
-
参数列表
参数 描述 name 名称 format 格式,具体格式请参见附录 -
返回值 日志成功返回1,否则返回0
- 例子
log_error_ex
log_error_ex(name, format, ...)
: log error消息。
-
参数列表
参数 描述 name 名称 format 格式,具体格式请参见附录 -
返回值 日志成功返回1,否则返回0
- 例子
log_critical_ex
log_critical_ex(name, format, ...)
: log critical消息。
-
参数列表
参数 描述 name 名称 format 格式,具体格式请参见附录 -
返回值 日志成功返回1,否则返回0
- 例子
范例
输出控制
log_debug("debug message"); // 由于默认的level是info,所以debug信息会被过滤,不会输出
log_info("{} ok!", "test"); // 输出: [2021-08-05 16:31:37.411][140597][I] test ok!
// 默认前缀模式是:[时间][线程号][level]
log_set_level("debug"); // 设置level到debug
log_debug("debug message"); // 现在可以输出debug的信息了:[2021-08-05 16:31:37.411][140597][D] debug message
log_set_pattern("%v"); // 可以设置输出的样式只有内容,不加前缀
log_info("{}+{}={}", 1,2,3);// 输出:1+2=3
附录
Format格式
格式字符串包含用大括号括起来的“替换字段” {}。未包含大括号的任何内容都被视为文本,将原样复制到输出中。如果需要在文本中包含{},可以通过{{和}}来转义它。“替换字段” 将会被后续的参数替换。
例如:
log_info("{}", 1) // 输出: 1
log_info("{}", 2.3) // 输出: 2.3
log_info("{}-{}", 1, 2) // 输出: 1-2
log_info("{:t}", 20190101t) // 输出:2019-01-01
log_info("{:t}", 20190101.093001t)// 输出:2019-01-01 09:30:01
和fmt_plugin支持的格式一致。
LOG消息样式
flag | meaning | example |
---|---|---|
%v |
The actual text to log | "some user text" |
%t |
Thread id | "1232" |
%P |
Process id | "3456" |
%n |
Logger's name | "some logger name" |
%l |
The log level of the message | "debug", "info", etc |
%L |
Short log level of the message | "D", "I", etc |
%a |
Abbreviated weekday name | "Thu" |
%A |
Full weekday name | "Thursday" |
%b |
Abbreviated month name | "Aug" |
%B |
Full month name | "August" |
%c |
Date and time representation | "Thu Aug 23 15:35:46 2014" |
%C |
Year in 2 digits | "14" |
%Y |
Year in 4 digits | "2014" |
%D or %x |
Short MM/DD/YY date | "08/23/14" |
%m |
Month 01-12 | "11" |
%d |
Day of month 01-31 | "29" |
%H |
Hours in 24 format 00-23 | "23" |
%I |
Hours in 12 format 01-12 | "11" |
%M |
Minutes 00-59 | "59" |
%S |
Seconds 00-59 | "58" |
%e |
Millisecond part of the current second 000-999 | "678" |
%f |
Microsecond part of the current second 000000-999999 | "056789" |
%F |
Nanosecond part of the current second 000000000-999999999 | "256789123" |
%p |
AM/PM | "AM" |
%r |
12 hour clock | "02:55:02 pm" |
%R |
24-hour HH:MM time, equivalent to %H:%M | "23:55" |
%T or %X |
ISO 8601 time format (HH:MM:SS), equivalent to %H:%M:%S | "23:55:59" |
%z |
ISO 8601 offset from UTC in timezone ([+/-]HH:MM) | "+02:00" |
%E |
Seconds since the epoch | "1528834770" |
%% |
The % sign | "%" |
%^ |
start color range (can be used only once) | "[mylogger] [info(green)] Some message" |
%$ |
end color range (for example %^[+++]%$ %v) (can be used only once) | [+++] Some message |
%o |
Elapsed time in milliseconds since previous message | 456 |
%i |
Elapsed time in microseconds since previous message | 456 |
%u |
Elapsed time in nanoseconds since previous message | 11456 |
%O |
Elapsed time in seconds since previous message | 4 |
Level的单字母简写
级别 | 简写 |
---|---|
trace | T |
debug | D |
info | I |
warning | W |
error | E |
critical | C |
off | O |