Erlang --- sasl錯誤日誌

erlang應用都會啓動一個sasl應用,sasl的一個重要功能即是能夠記錄系統進程相關日誌,如進程啓動、結束、崩潰錯誤等信息。sasl的日誌功能是基於erlang自帶的日誌模塊error_logger來實現的,sasl中定義了下面3個錯誤處理:shell

sasl_report_tty_h:將日誌輸出到控制檯函數

sasl_report_file_h:將日誌輸出到單個文件工具

error_logger_mf_h:循環日誌文件記錄spa

sasl日誌配置解析示例文件elog.config日誌

[{sasl, [ 
         %% minimise shell error logging 
         {sasl_error_logger, false}, 
         %% only report errors 
         {errlog_type, error}, 
         %% define the parameters of the rotating log 
         %% the log file directory 
         {error_logger_mf_dir,"./logs"}, 
         %% # bytes per logfile 
         {error_logger_mf_maxbytes,10485760}, % 10 MB 
         %% maximum number of 
         {error_logger_mf_maxfiles, 10} 進程

        ]}]. io

上面的配置實際上能夠分爲兩組
1).輸出到控制檯或者單個文件sasl_error_logger 、errlog_type,這組配置對sasl_report_tty_h、sasl_report_file_h這兩個日誌處理器有效配置

sasl_error_logger false|tty|{file,File}|{file, FileName, Modes}  默認ttyfile

errlog_type error|progress|all, 默認allerlang

2).輸出到循環日誌文件
error_logger_mf_dir 日誌目錄
error_logger_mf_maxbytes 日誌文件大小

error_logger_mf_maxfiles 日誌文件個數

上面兩組配置是互相獨立的,啓動erlang時能夠指定配置文件

$erl -boot start_sasl -config elog

start_sasl是一個啓動文件,在erlang的安裝目錄下能夠找到,全稱爲start_sasl.boot, elog就是上面的配置文件elog.config。

讀取循環日誌
循環日誌是用二進制格式記錄在文件中的,須要使用rb工具讀取,rb經常使用函數有:
rb:start(Options) 啓動rb
{max, MaxNoOfReports} 讀取的最大日誌條數
{report_dir, DirString} 指定讀取日誌的目錄,默認爲配置項error_logger_mf_dir中的值
{type, ReportType} 讀取指定類型的報告,error | error_report | info_msg | info_report | warning_msg | warning_report | crash_report | supervisor_report | progress
rb:stop() 中止rb
rescan(Options) 從新掃描日誌文件
list()、list(Type) 列出全部的日誌報告,Type能夠指定列出的報告類型

show(Report) 顯示日誌報告的詳細信息,Report取值爲list列出的編號。

相關文章
相關標籤/搜索