跳到正文
本頁目錄

📅 日誌 API

這裡提供了大量的 輔助功能 ,包括日誌功能、加載器功能接口等等。

他們讓你開發腳本變得更加容易而自然,避免了很多無謂的細節問題的糾纏。

📅 通用日誌 API

以往,按某種格式輸出日誌到指定位置是一件非常麻煩的事情。
如今,腳本引擎為你提供了方便的通用日誌接口。

概念:關於日誌輸出等級

為了給日誌的優先程度和重要性進行分級,我們引入了 日誌輸出等級 的概念。
日誌輸出等級越高,日誌的內容越詳細,但同時輸出的日誌量也越大
詳見下表:

日誌輸出等級對應等級名稱實際輸出日誌內容
0Slient不輸出任何日誌
1Fatal僅輸出 嚴重錯誤信息
2Error輸出 嚴重錯誤、錯誤信息
3Warn輸出 嚴重錯誤、錯誤、警告信息
4Info輸出 嚴重錯誤、錯誤、警告、提示信息
5Debug輸出 嚴重錯誤、錯誤、警告、提示 和 調試信息

通過 日誌輸出等級 設置,你可以很方便地過濾掉某些在生產環境中沒必要輸出的信息。

日誌輸出等級的默認值為4,也就是說,除了調試信息以外其他種類的日誌都將被輸出。
通過下面給出的一些 API ,你可以將日誌輸出等級調整為你自己想要的值。

設置輸出配置

在使用通用日誌接口之前,你需要先按你的需求修改一下日誌輸出的某些配置設置

你可以通過修改設置,自由選擇將日誌發向控制台、文件甚至某個玩家
這些設置是可以同時存在的,比如說,你可以設置同時發送到控制台和文件
如果你不修改任何設置,默認情況 下,日誌僅會輸出到控制台。

設置日誌是否輸出到控制台

logger.setConsole(isOpen[,logLevel])

  • 參數:
    • isOpen : Boolean
      設置日誌是否輸出到控制台
      開關默認是打開狀態。
    • logLevel : Integer
      (可選參數)控制台的日誌輸出等級,默認為4
  • 返回值:無

設置日誌是否輸出到文件

logger.setFile(filepath[,logLevel])

  • 參數:
    • filepath : String
      設置日誌輸出到的文件路徑
      如果傳入空字符串或者Null,則代表關閉到文件的輸出。
      開關默認是關閉狀態
    • logLevel : Integer
      (可選參數)文件的最小日誌輸出等級,默認為4
  • 返回值:無

如果要輸出到文件,我們提倡您將日誌統一輸出到BDS根目录/logs/文件夾下,以方便整理和檢查。

設置日誌是否輸出到某個玩家

logger.setPlayer(player[,logLevel])

  • 參數:
    • player : Player
      設置日誌輸出到的目標玩家對象
      如果傳入Null,則代表關閉到玩家的輸出。
      開關默認是關閉狀態
    • logLevel : Integer
      (可選參數)玩家的最小日誌輸出等級,默認為4
  • 返回值:無

這是為了方便遊戲內調試而設計的功能,輸出到玩家的日誌會被當作聊天消息,顯示在目標玩家的屏幕上

輸出日誌函數

在設置完畢之後,你就可以用這裡的函數輸出日誌了

logger.log(data1,data2,...) -> 輸出普通文本
logger.debug(data1,data2,...) -> 輸出調試信息
logger.info(data1,data2,...) -> 輸出提示信息
logger.warn(data1,data2,...) -> 輸出警告信息
logger.error(data1,data2,...) -> 輸出錯誤信息
logger.fatal(data1,data2,...) -> 輸出嚴重錯誤信息

  • 參數:
    • 待輸出的變量或者數據
      可以是任意類型,參數數量可以是任意個
  • 返回值:無

其中,普通文本在輸出的時候會按照原樣輸出,而其他的各個輸出接口都會在日誌內容前面附加上當前時間和日誌類型
例如:你調用logger.error("Fail to transport the player")
日誌輸出的結果是

Text Only
[2021-05-21 19:41:03 Error] Fail to transport the player

其他的一些設置項

除此之外,還有其他的一些設置項,用來改變輸出日誌的格式

設置自定義日誌消息標頭

logger.setTitle(title)

  • 參數:
    • title : String
      設置的自定義標頭
  • 返回值:無

「標頭」為日誌輸出條目開頭的文字,用來直觀地區分日誌的輸出源。
默認情況下,消息標頭默認為空,即輸出時沒有標頭。

例如:設置自定義標頭為logger.setTitle("LeviLamina")
則在接下來的日誌輸出將變為形如:

Text Only
20:05:26 ERROR [LeviLamina] Fail to transport the player

統一修改日誌輸出等級

logger.setLogLevel(level)

  • 參數:
    • level : Integer
      日誌輸出等級
  • 返回值:無

統一重設各種輸出方向的日誌輸出等級