Module 基礎模組

模組console

控制台存取對象

console 模組是一個核心模組,它提供了類似於瀏覽器中console 物件的功能,可以將資訊輸出到控制台,方便偵錯和輸出資訊。

console 模組中最常用的方法是log(),該方法可以將任何JavaScript 值列印到控制台,並自動新增換行符。除了log() 方法外,還有info()、warn()、error() 方法,分別用於輸出資訊、警告和錯誤,它們的功能和log() 方法基本上相同,只是在控制台中顯示的樣式不同。

console 模組還提供了dir() 方法,用於將一個物件的屬性和方法以可讀性更強的形式輸出到控制台,方便調試複雜的物件。另外,還有time() 和timeEnd() 方法,用於在控制台中計時程式碼執行的時間,並輸出時間差。

除了以上常用的方法,console 模組還提供了一些其他的方法,如assert()、notic()、trace() 等,可以在不同的情況下方便地進行調試和資訊輸出。

console 模組是一個非常實用的模組,可以在開發過程中提高調試效率,方便快速地輸出各種資訊。

靜態函數

add

新增console 輸出系統,支援的設備為console, syslog, event,最多可以新增10 個輸出

1
static console.add(String type);

呼叫參數:

  • type: String, 輸出設備

透過配置console,可以將程式輸出和系統錯誤發送到不同設備,用於運行環境資訊收集。

type 為配置,為設備名稱字串:

1
console.add("console");

syslog 僅在posix 平台有效:

1
console.add("syslog");

event 僅在windows 平台有效:

1
console.add("event");

新增console 輸出系統,支援的設備為console, syslog, event 和file,最多可以新增10 個輸出

1
static console.add(Object cfg);

呼叫參數:

  • cfg: Object, 輸出配置

透過配置console,可以將程式輸出和系統錯誤發送到不同設備,用於運行環境資訊收集。

cfg 可以為一個設備配置物件:

1 2 3 4
console.add({ type: "console", levels: [console.INFO, console.ERROR] // optional, default is all levels });

syslog 僅在posix 平台有效:

1 2 3 4
console.add({ type: "syslog", levels: [console.INFO, console.ERROR] });

event 僅在windows 平台有效:

1 2 3 4
console.add({ type: "event", levels: [console.INFO, console.ERROR] });

file 日誌:

1 2 3 4 5 6 7
console.add({ type: "file", levels: [console.INFO, console.ERROR], path: "path/to/file_%s.log", // specifies the log output file, can use %s to specify the insertion date location, or add at the end if not specified split: "30m", // Optional values are "day", "hour", "minute", "####k", "####m", "####g", default is "1m" count: 10 // option, selectable from 2 to 128, default is 128 });

批次新增console 輸出系統,支援的裝置為console, syslog, event 和file,最多可以新增10 個輸出

1
static console.add(Array cfg);

呼叫參數:

  • cfg: Array, 輸出配置數組

透過配置console,可以將程式輸出和系統錯誤發送到不同設備,用於運行環境資訊收集。

1 2 3 4
console.add(["console", { type: "syslog", levels: [console.INFO, console.ERROR] }]);

reset

初始化到缺省設置,只在console 輸出訊息

1
static console.reset();

log

記錄普通日誌訊息,與info 等同

1 2
static console.log(String fmt, ...args);

呼叫參數:

  • fmt: String, 格式化字串
  • args: ..., 可選參數列表

記錄一般等級的日誌資訊。通常用於輸出非錯誤性提示訊息。


記錄普通日誌訊息,與info 等同

1
static console.log(...args);

呼叫參數:

  • args: ..., 可選參數列表

記錄一般等級的日誌資訊。通常用於輸出非錯誤性提示訊息。


debug

記錄調試日誌訊息

1 2
static console.debug(String fmt, ...args);

呼叫參數:

  • fmt: String, 格式化字串
  • args: ..., 可選參數列表

記錄調試日誌資訊。通常用於輸出調試資訊。不重要。


記錄調試日誌訊息

1
static console.debug(...args);

呼叫參數:

  • args: ..., 可選參數列表

記錄調試日誌資訊。通常用於輸出調試資訊。不重要。


info

記錄普通日誌訊息,與log 等同

1 2
static console.info(String fmt, ...args);

呼叫參數:

  • fmt: String, 格式化字串
  • args: ..., 可選參數列表

記錄一般等級的日誌資訊。通常用於輸出非錯誤性提示訊息。


記錄普通日誌訊息,與log 等同

1
static console.info(...args);

呼叫參數:

  • args: ..., 可選參數列表

記錄一般等級的日誌資訊。通常用於輸出非錯誤性提示訊息。


notice

記錄警告日誌訊息

1 2
static console.notice(String fmt, ...args);

呼叫參數:

  • fmt: String, 格式化字串
  • args: ..., 可選參數列表

記錄警告日誌資訊。通常用於輸出提示性偵錯資訊。一般重要。


記錄警告日誌訊息

1
static console.notice(...args);

呼叫參數:

  • args: ..., 可選參數列表

記錄警告日誌資訊。通常用於輸出提示性偵錯資訊。一般重要。


warn

記錄警告日誌訊息

1 2
static console.warn(String fmt, ...args);

呼叫參數:

  • fmt: String, 格式化字串
  • args: ..., 可選參數列表

記錄警告日誌資訊。通常用於輸出警告性調試資訊。重要。


記錄警告日誌訊息

1
static console.warn(...args);

呼叫參數:

  • args: ..., 可選參數列表

記錄警告日誌資訊。通常用於輸出警告性調試資訊。重要。


error

記錄錯誤日誌訊息

1 2
static console.error(String fmt, ...args);

呼叫參數:

  • fmt: String, 格式化字串
  • args: ..., 可選參數列表

記錄用於錯誤日誌訊息。通常用於輸出錯誤訊息。非常重要。系統的出錯資訊也會以此等級記錄。


記錄錯誤日誌訊息

1
static console.error(...args);

呼叫參數:

  • args: ..., 可選參數列表

記錄用於錯誤日誌訊息。通常用於輸出錯誤訊息。非常重要。系統的出錯資訊也會以此等級記錄。


crit

記錄關鍵錯誤日誌訊息

1 2
static console.crit(String fmt, ...args);

呼叫參數:

  • fmt: String, 格式化字串
  • args: ..., 可選參數列表

記錄用於關鍵錯誤日誌資訊。通常用於輸出關鍵錯誤訊息。非常重要。


記錄關鍵錯誤日誌訊息

1
static console.crit(...args);

呼叫參數:

  • args: ..., 可選參數列表

記錄用於關鍵錯誤日誌資訊。通常用於輸出關鍵錯誤訊息。非常重要。


alert

記錄警報錯誤日誌訊息

1 2
static console.alert(String fmt, ...args);

呼叫參數:

  • fmt: String, 格式化字串
  • args: ..., 可選參數列表

記錄用於警報錯誤日誌訊息。通常用於輸出警報錯誤訊息。非常重要。為最高級別資訊。


記錄警報錯誤日誌訊息

1
static console.alert(...args);

呼叫參數:

  • args: ..., 可選參數列表

記錄用於警報錯誤日誌訊息。通常用於輸出警報錯誤訊息。非常重要。為最高級別資訊。


trace

輸出當前呼叫堆疊

1 2
static console.trace(String fmt, ...args);

呼叫參數:

  • fmt: String, 格式化字串
  • args: ..., 可選參數列表

透過日誌輸出當前呼叫堆疊。


輸出當前呼叫堆疊

1
static console.trace(...args);

呼叫參數:

  • args: ..., 可選參數列表

透過日誌輸出當前呼叫堆疊。


dir

用JSON 格式輸出對象

1 2
static console.dir(Value obj, Object options = {});

呼叫參數:

  • obj: Value, 指定需要處理的對象
  • options: Object, 指定格式控制選項

支援以下參數:

1 2 3 4 5 6 7 8 9
{ "colors": false, // specify if output should be colorized, defaults to false "depth": 2, // specify the max depth of the output, defaults to 2 "table": false, // specify if output should be a table, defaults to false "encode_string": true, // specify if string should be encoded, defaults to true "maxArrayLength": 100, // specify max number of array elements to show, set to 0 or negative to show no elements, defaults to 100 "maxStringLength": 10000, // specify max string length to output, set to 0 or negative to show no strings, defaults to 10000 "fields": [], // specify the fields to be displayed, defaults to all }

table

用JSON 格式輸出對象

1
static console.table(Value obj);

呼叫參數:

  • obj: Value, 給定要顯示的對象

用JSON 格式輸出對象

1 2
static console.table(Value obj, Array fields);

呼叫參數:

  • obj: Value, 給定要顯示的對象
  • fields: Array, 給定要顯示的字段

time

啟動一個計時器

1
static console.time(String label = "time");

呼叫參數:

  • label: String, 標題,預設為空字串。

timeElapse

輸出指定計時器目前計時值

1
static console.timeElapse(String label = "time");

呼叫參數:

  • label: String, 標題,預設為空字串。

timeEnd

結束指定計時器,並輸出最後計時值

1
static console.timeEnd(String label = "time");

呼叫參數:

  • label: String, 標題,預設為空字串。

assert

斷言測試,如果測試值為假,則報錯

1 2
static console.assert(Value value, String msg = "");

呼叫參數:

  • value: Value, 測試的數值
  • msg: String, 報錯訊息

print

向控制台輸出格式化文本,輸出內容不會記入日誌系統,輸出文字後不會自動換行,可連續輸出

1 2
static console.print(String fmt, ...args);

呼叫參數:

  • fmt: String, 格式化字串
  • args: ..., 可選參數列表

向控制台輸出格式化文本,輸出內容不會記入日誌系統,輸出文字後不會自動換行,可連續輸出

1
static console.print(...args);

呼叫參數:

  • args: ..., 可選參數列表

moveTo

移動控制台遊標到指定位置

1 2
static console.moveTo(Integer row, Integer column);

呼叫參數:

  • row: Integer, 指定新遊標的行座標
  • column: Integer, 指定新遊標的列座標

hideCursor

隱藏控制台遊標

1
static console.hideCursor();

showCursor

顯示控制台遊標

1
static console.showCursor();

clear

清除控制台

1
static console.clear();

readLine

從控制台讀取使用者輸入

1
static String console.readLine(String msg = "") async;

呼叫參數:

  • msg: String, 提示訊息

回傳結果:

  • String, 傳回使用者輸入的訊息

getpass

從控制台讀取使用者輸入的密碼

1
static String console.getpass(String msg = "") async;

呼叫參數:

  • msg: String, 提示訊息

回傳結果:

  • String, 返回用戶輸入的密碼

靜態屬性

loglevel

Integer, 輸出級別,用於濾波輸出訊息,預設為NOTSET,全部輸出。訊息過濾之後才會輸出給add 設定的各個設備。

1
static Integer console.loglevel;

width

Integer, 查詢終端每行字元數

1
static readonly Integer console.width;

height

Integer, 查詢終端行數

1
static readonly Integer console.height;

常量

FATAL

loglevel 等級常數

1
const console.FATAL = 0;

ALERT

loglevel 等級常數

1
const console.ALERT = 1;

CRIT

loglevel 等級常數

1
const console.CRIT = 2;

ERROR

loglevel 等級常數

1
const console.ERROR = 3;

WARN

loglevel 等級常數

1
const console.WARN = 4;

NOTICE

loglevel 等級常數

1
const console.NOTICE = 5;

INFO

loglevel 等級常數

1
const console.INFO = 6;

DEBUG

loglevel 等級常數

1
const console.DEBUG = 7;

PRINT

loglevel 僅用於輸出,訊息輸出後不換行,file 和syslog 不保存此等級資訊

1
const console.PRINT = 9;

NOTSET

loglevel 等級常數

1
const console.NOTSET = 10;