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列出的編號。