日志输出
为辅助开发者更清晰地排查问题,View.js 为每个视图实例内置了格式化日志输出组件,开发者可以通过 logger 句柄直接使用。例如:
init.js
1
var view = View.ofId("myView");
2
3
// 1124 21:28:17 [View#myView]: debug
4
view.logger.debug("debug");
5
6
// 1124 21:28:29 [View#myView]: hello, wo
7
// 第一个参数为消息模板,其中 '{}' 为占位符,
8
// 按从左到右的顺序分别对应第二个开始的填充数rld
9
view.logger.info("hello, {}", "world");
10
11
// 1124 21:28:41 [View#myView]: data: {a: 1}, time: 12:21
12
view.logger.warn("data: {}, time: {}", {a: 1}, "12:21");
13
14
// 可以使用 '\' 输出 '{}'
15
// 1124 21:28:43 [View#myView]: error: {}
16
view.logger.error("error: \\{}");
Copied!
View.js 共支持 5 种级别的日志输出(级别从低到高):
  1. 1.
    debug
  2. 2.
    log
  3. 3.
    info
  4. 4.
    warn
  5. 5.
    error
开发者可以根据消息的重要性分别调用不同的方法。
无论是哪种日志级别,其输出的消息结构是相同的,均包括:
  1. 1.
    月、日、时、分、秒组合成的时间信息
  2. 2.
    日志实例名称,由字符:"[" 和 "]" 包裹
  3. 3.
    消息模板。亦即方法的第一个参数
  4. 4.
    填充参数。第二个及后续的不定长参数,对应于消息模板中的占位符:"{}"
除视图实例内置的日志实例句柄外,开发者也可以手动创建新的实例:
init.js
1
var logger = View.Logger.ofName("myLogger");
2
3
// 1124 21:29:31 [myLogger]: hello, world!
4
logger.debug("hello, world!");
5
6
/**
7
* 如果相同名称的实例已经存在,
8
* Logger.ofName(name: string) 将返回已经存在的实例。
9
* 如果实例尚不存在,则使用给定的名称自动创建一个。
10
*/
11
var logger2 = View.Logger.ofName("myLogger");
12
console.log(logger1 === logger2); // -> true
Copied!
Last modified 2yr ago
Copy link