一个方便的 print(或者 trace)工具

7 min read

需求如下:
[ 1 ] .类似 c 语言的 printf ,但是支持多语言,比如:
c 语言 include 一个头文件,然后:printf2("xxx")输出到服务器
node:const printf2= require('print2module')
支持的语言越多越好
[ 2 ] .多平台( mac,win,linux ),有个很好的项目 https://github.com/capslock66/Tracetool ,但是只支持 windows ,而且网络只能 tcp 不能 udp
[ 3 ] .可以输出到网络服务器,比如:
printf2init(TYPE_UDP, "10.2.3.4", 9000)
printf2("my msg: %s", "hello, world")
[ 4 ] .速度不要太慢,每秒打印几十条消息不影响性能
[ 5 ] .服务端的 log 显示程序可以是桌面,网页(显示消息和打印时间不要延时太大)
有木有这样的现成的工具呢?
有一些现成的工具可以满足你的需求,例如:

  1. Bunyan:一个 Node.js 的日志库,支持多语言,可以输出到控制台或者文件,也可以自定义输出方式。具体可以参考官网:https://github.com/trentm/node-bunyan 。

  2. Log4j:Java 开发的日志库,同样支持多语言,可以输出到控制台、文件、邮件等。具体可以参考官网:https://logging.apache.org/log4j/。

  3. Logback:一个 Java 日志框架,与 Log4j 类似,支持多语言,可以输出到控制台、文件、邮件等。具体可以参考官网:https://logback.qos.ch/。

  4. Fluentd:一个开源的日志收集工具,支持多种语言和多种数据格式,可以将日志转发到多种存储后端,例如 Elasticsearch、S3 等。具体可以参考官网:https://www.fluentd.org/ 。

这些工具中,Bunyan 和 Fluentd 可以比较方便地输出到网络服务器,支持多种网络协议和传输方式,速度也相对较快。Log4j 和 Logback 则可以比较方便地自定义输出方式,包括格式和传输方式。