檢視原始碼 錯誤記錄

來自執行時系統的錯誤資訊

來自執行時系統的錯誤資訊,也就是關於因未捕獲的錯誤例外而終止的程序資訊,預設會寫入終端機 (TTY)

=ERROR REPORT==== 9-Dec-2003::13:25:02 ===
Error in process <0.27.0> with exit value: {{badmatch,[1,2,3]},[{m,f,1},{shell,eval_loop,2}]}

錯誤資訊由 Logger 處理,它是 Kernel 應用程式的一部分。

執行時系統使用的結束原因(例如 badarg)在錯誤與錯誤處理中有說明。

有關 Logger 及其使用者介面的資訊,請參閱 logger 手冊頁面和 Kernel 使用者指南中的記錄章節。 可以配置系統,使日誌事件寫入檔案或 TTY,或兩者都寫入。此外,使用者定義的應用程式可以使用 Logger 發送和格式化日誌事件。

來自 OTP 行為的日誌事件

標準行為(supervisorgen_server 等)會將進度和錯誤資訊發送到 Logger。 預設情況下,不會記錄進度報告,但可以透過將主要日誌級別設定為 info 來啟用,例如,使用 Kernel 設定參數 logger_level。 Supervisor 報告、崩潰報告和其他錯誤和資訊報告預設會通過在啟動 Kernel 應用程式時設定的日誌處理常式記錄。

在 Erlang/OTP 21.0 之前,只有在 SASL 應用程式執行時才會記錄 Supervisor、崩潰和進度報告。 為了向後兼容,可以透過將 Kernel 設定參數 logger_sasl_compatible 設定為 true 來啟用此行為。 有關更多資訊,請參閱 SASL 使用者指南中的SASL 錯誤記錄

% erl -kernel logger_level info
Erlang/OTP 21 [erts-10.0] [source-13c50db] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:1] [hipe]

=PROGRESS REPORT==== 8-Jun-2018::16:54:19.916404 ===
    application: kernel
    started_at: nonode@nohost
=PROGRESS REPORT==== 8-Jun-2018::16:54:19.922908 ===
    application: stdlib
    started_at: nonode@nohost
=PROGRESS REPORT==== 8-Jun-2018::16:54:19.925755 ===
    supervisor: {local,kernel_safe_sup}
    started: [{pid,<0.74.0>},
              {id,disk_log_sup},
              {mfargs,{disk_log_sup,start_link,[]}},
              {restart_type,permanent},
              {shutdown,1000},
              {child_type,supervisor}]
=PROGRESS REPORT==== 8-Jun-2018::16:54:19.926056 ===
    supervisor: {local,kernel_safe_sup}
    started: [{pid,<0.75.0>},
              {id,disk_log_server},
              {mfargs,{disk_log_server,start_link,[]}},
              {restart_type,permanent},
              {shutdown,2000},
              {child_type,worker}]
Eshell V10.0  (abort with ^G)
1>