<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html xmlns:fn="http://www.w3.org/2005/02/xpath-functions"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <link rel="stylesheet" href="../../../../doc/otp_doc.css" type="text/css"> <title>Erlang -- rb</title> </head> <body bgcolor="white" text="#000000" link="#0000ff" vlink="#ff00ff" alink="#ff0000"><div id="container"> <script id="js" type="text/javascript" language="JavaScript" src="../../../../doc/js/flipmenu/flipmenu.js"></script><script id="js2" type="text/javascript" src="../../../../doc/js/erlresolvelinks.js"></script><script language="JavaScript" type="text/javascript"> <!-- function getWinHeight() { var myHeight = 0; if( typeof( window.innerHeight ) == 'number' ) { //Non-IE myHeight = window.innerHeight; } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) { //IE 6+ in 'standards compliant mode' myHeight = document.documentElement.clientHeight; } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) { //IE 4 compatible myHeight = document.body.clientHeight; } return myHeight; } function setscrollpos() { var objf=document.getElementById('loadscrollpos'); document.getElementById("leftnav").scrollTop = objf.offsetTop - getWinHeight()/2; } function addEvent(obj, evType, fn){ if (obj.addEventListener){ obj.addEventListener(evType, fn, true); return true; } else if (obj.attachEvent){ var r = obj.attachEvent("on"+evType, fn); return r; } else { return false; } } addEvent(window, 'load', setscrollpos); //--></script><div id="leftnav"><div class="innertube"> <img alt="Erlang logo" src="../../../../doc/erlang-logo.png"><br><small><a href="users_guide.html">User's Guide</a><br><a href="index.html">Reference Manual</a><br><a href="release_notes.html">Release Notes</a><br><a href="../pdf/sasl-2.2.1.pdf">PDF</a><br><a href="../../../../doc/index.html">Top</a></small><p><strong>System Application Support Libraries (SASL)</strong><br><strong>Reference Manual</strong><br><small>Version 2.2.1</small></p> <br><a href="javascript:openAllFlips()">Expand All</a><br><a href="javascript:closeAllFlips()">Contract All</a><p><small><strong>Table of Contents</strong></small></p> <ul class="flipMenu"> <li title="sasl (App)"><a href="sasl_app.html">sasl (App) </a></li> <li id="no" title="alarm_handler " expanded="false">alarm_handler<ul> <li><a href="alarm_handler.html"> Top of manual page </a></li> <li title="clear_alarm-1"><a href="alarm_handler.html#clear_alarm-1">clear_alarm/1</a></li> <li title="get_alarms-0"><a href="alarm_handler.html#get_alarms-0">get_alarms/0</a></li> <li title="set_alarm-1"><a href="alarm_handler.html#set_alarm-1">set_alarm/1</a></li> </ul> </li> <li id="no" title="overload " expanded="false">overload<ul> <li><a href="overload.html"> Top of manual page </a></li> <li title="request-0"><a href="overload.html#request-0">request/0</a></li> <li title="get_overload_info-0"><a href="overload.html#get_overload_info-0">get_overload_info/0</a></li> </ul> </li> <li id="loadscrollpos" title="rb " expanded="true">rb<ul> <li><a href="rb.html"> Top of manual page </a></li> <li title="filter-1"><a href="rb.html#filter-1">filter/1</a></li> <li title="filter-2"><a href="rb.html#filter-2">filter/2</a></li> <li title="grep-1"><a href="rb.html#grep-1">grep/1</a></li> <li title="h-0"><a href="rb.html#h-0">h/0</a></li> <li title="help-0"><a href="rb.html#help-0">help/0</a></li> <li title="list-0"><a href="rb.html#list-0">list/0</a></li> <li title="list-1"><a href="rb.html#list-1">list/1</a></li> <li title="rescan-0"><a href="rb.html#rescan-0">rescan/0</a></li> <li title="rescan-1"><a href="rb.html#rescan-1">rescan/1</a></li> <li title="show-0"><a href="rb.html#show-0">show/0</a></li> <li title="show-1"><a href="rb.html#show-1">show/1</a></li> <li title="start-0"><a href="rb.html#start-0">start/0</a></li> <li title="start-1"><a href="rb.html#start-1">start/1</a></li> <li title="start_log-1"><a href="rb.html#start_log-1">start_log/1</a></li> <li title="stop-0"><a href="rb.html#stop-0">stop/0</a></li> <li title="stop_log-0"><a href="rb.html#stop_log-0">stop_log/0</a></li> </ul> </li> <li id="no" title="release_handler " expanded="false">release_handler<ul> <li><a href="release_handler.html"> Top of manual page </a></li> <li title="check_install_release-1"><a href="release_handler.html#check_install_release-1">check_install_release/1</a></li> <li title="check_install_release-2"><a href="release_handler.html#check_install_release-2">check_install_release/2</a></li> <li title="create_RELEASES-4"><a href="release_handler.html#create_RELEASES-4">create_RELEASES/4</a></li> <li title="install_file-2"><a href="release_handler.html#install_file-2">install_file/2</a></li> <li title="install_release-1"><a href="release_handler.html#install_release-1">install_release/1</a></li> <li title="install_release-2"><a href="release_handler.html#install_release-2">install_release/2</a></li> <li title="make_permanent-1"><a href="release_handler.html#make_permanent-1">make_permanent/1</a></li> <li title="remove_release-1"><a href="release_handler.html#remove_release-1">remove_release/1</a></li> <li title="reboot_old_release-1"><a href="release_handler.html#reboot_old_release-1">reboot_old_release/1</a></li> <li title="set_removed-1"><a href="release_handler.html#set_removed-1">set_removed/1</a></li> <li title="set_unpacked-2"><a href="release_handler.html#set_unpacked-2">set_unpacked/2</a></li> <li title="unpack_release-1"><a href="release_handler.html#unpack_release-1">unpack_release/1</a></li> <li title="which_releases-0"><a href="release_handler.html#which_releases-0">which_releases/0</a></li> <li title="which_releases-1"><a href="release_handler.html#which_releases-1">which_releases/1</a></li> <li title="upgrade_app-2"><a href="release_handler.html#upgrade_app-2">upgrade_app/2</a></li> <li title="downgrade_app-2"><a href="release_handler.html#downgrade_app-2">downgrade_app/2</a></li> <li title="downgrade_app-3"><a href="release_handler.html#downgrade_app-3">downgrade_app/3</a></li> <li title="upgrade_script-2"><a href="release_handler.html#upgrade_script-2">upgrade_script/2</a></li> <li title="downgrade_script-3"><a href="release_handler.html#downgrade_script-3">downgrade_script/3</a></li> <li title="eval_appup_script-4"><a href="release_handler.html#eval_appup_script-4">eval_appup_script/4</a></li> </ul> </li> <li id="no" title="systools " expanded="false">systools<ul> <li><a href="systools.html"> Top of manual page </a></li> <li title="make_relup-3"><a href="systools.html#make_relup-3">make_relup/3</a></li> <li title="make_relup-4"><a href="systools.html#make_relup-4">make_relup/4</a></li> <li title="make_script-1"><a href="systools.html#make_script-1">make_script/1</a></li> <li title="make_script-2"><a href="systools.html#make_script-2">make_script/2</a></li> <li title="make_tar-1"><a href="systools.html#make_tar-1">make_tar/1</a></li> <li title="make_tar-2"><a href="systools.html#make_tar-2">make_tar/2</a></li> <li title="script2boot-1"><a href="systools.html#script2boot-1">script2boot/1</a></li> </ul> </li> <li title="appup"><a href="appup.html">appup</a></li> <li title="rel"><a href="rel.html">rel</a></li> <li title="relup"><a href="relup.html">relup</a></li> <li title="script"><a href="script.html">script</a></li> </ul> </div></div> <div id="content"> <div class="innertube"> <!-- refpage --><center><h1>rb</h1></center> <h3>MODULE</h3> <div class="REFBODY">rb</div> <h3>MODULE SUMMARY</h3> <div class="REFBODY">The Report Browser Tool</div> <h3>DESCRIPTION</h3> <div class="REFBODY"><p> <p>The Report Browser (RB) tool makes it possible to browse and format error reports written by the error logger handler <span class="code">log_mf_h</span>. </p> </p></div> <h3>EXPORTS</h3> <p><a name="filter-1"><span class="bold_code">filter(Filters)</span></a><br><a name="filter-2"><span class="bold_code">filter(Filters, Dates)</span></a><br></p> <div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"> <span class="bold_code">Filters = [filter()]</span><br> </div> <div class="REFTYPES"> <span class="bold_code">filter() = {Key, Value} | {Key, Value, no} | {Key, RegExp, re} | {Key, RegExp, re, no}</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Key = term()</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Value = term()</span><br> </div> <div class="REFTYPES"> <span class="bold_code">RegExp = string() | {string, Options} | mp(), {mp(), Options}</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Dates = {DateFrom, DateTo} | {DateFrom, from} | {DateTo, to}</span><br> </div> <div class="REFTYPES"> <span class="bold_code">DateFrom = DateTo = {date(), time()}</span><br> </div> <div class="REFTYPES"> <span class="bold_code">date() and time() are the same type as in the <span class="code">calendar</span> module</span><br> </div> </div> <div class="REFBODY"><p> <p>This function displays the reports that match the provided filters.</p> <p> When a filter includes the <span class="code">no</span> atom it will exclude the reports that match that filter. </p> <p> The reports are matched using the <span class="code">proplists</span> module. The report must be a proplist to be matched against any of the <span class="code">filters()</span>. </p> <p> If the filter is of the form <span class="code">{Key, RegExp, re}</span> the report must contain an element with <span class="code">key = Key</span> and <span class="code">Value</span> must match the RegExp regular expression. </p> <p> If the Dates parameter is provided, then the reports are filtered according to the date when they occurred. If Dates is of the form <span class="code">{DateFrom, from}</span> then reports that occurred after DateFrom are displayed. </p> <p> If Dates is of the form <span class="code">{DateTo, to}</span> then reports that occurred before DateTo are displayed. </p> <p> If two Dates are provided, then reports that occurred between those dates are returned. </p> <p> If you only want to filter only by dates, then you can provide the empty list as the Filters parameter. </p> <p> See <span class="code">rb:grep/1</span> for more information on the RegExp parameter. </p> </p></div> <p><a name="grep-1"><span class="bold_code">grep(RegExp)</span></a><br></p> <div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"> <span class="bold_code">RegExp = string() | {string, Options} | mp(), {mp(), Options}</span><br> </div> </div> <div class="REFBODY"><p> <p>All reports containing the regular expression <span class="code">RegExp</span> are printed. </p> <p><span class="code">RegExp</span> can be a string containing the regular expression; a tuple with the string and the options for compilation; a compiled regular expression; a compiled regular expression and the options for running it. Refer to the module <span class="code">re</span> and specially the function <span class="code">re:run/3</span> for a definition of valid regular expressions and options. </p> </p></div> <p><a name="h-0"><span class="bold_code">h()</span></a><br><a name="help-0"><span class="bold_code">help()</span></a><br></p> <div class="REFBODY"><p> <p>Prints the on-line help information. </p> </p></div> <p><a name="list-0"><span class="bold_code">list()</span></a><br><a name="list-1"><span class="bold_code">list(Type)</span></a><br></p> <div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"> <span class="bold_code">Type = type()</span><br> </div> <div class="REFTYPES"> <span class="bold_code">type() = error | error_report | info_msg | info_report | warning_msg | warning_report | crash_report | supervisor_report | progress</span><br> </div> </div> <div class="REFBODY"><p> <p>This function lists all reports loaded in the <span class="code">rb_server</span>. Each report is given a unique number that can be used as a reference to the report in the <span class="code">show/1</span> function. </p> <p>If no <span class="code">Type</span> is given, all reports are listed. </p> </p></div> <p><a name="rescan-0"><span class="bold_code">rescan()</span></a><br><a name="rescan-1"><span class="bold_code">rescan(Options)</span></a><br></p> <div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"> <span class="bold_code">Options = [opt()]</span><br> </div> </div> <div class="REFBODY"><p> <p>Rescans the report directory. <span class="code">Options</span> is the same as for <span class="code">start()</span>. </p> </p></div> <p><a name="show-0"><span class="bold_code">show()</span></a><br><a name="show-1"><span class="bold_code">show(Report)</span></a><br></p> <div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"> <span class="bold_code">Report = int() | type()</span><br> </div> </div> <div class="REFBODY"><p> <p>If a type argument is given, all loaded reports of this type are printed. If an integer argument is given, the report with this reference number is printed. If no argument is given, all reports are shown. </p> </p></div> <p><a name="start-0"><span class="bold_code">start()</span></a><br><a name="start-1"><span class="bold_code">start(Options)</span></a><br></p> <div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"> <span class="bold_code">Options = [opt()]</span><br> </div> <div class="REFTYPES"> <span class="bold_code">opt() = {start_log, FileName} | {max, MaxNoOfReports} | {report_dir, DirString} | {type, ReportType} | {abort_on_error, Bool}</span><br> </div> <div class="REFTYPES"> <span class="bold_code">FileName = string() | standard_io</span><br> </div> <div class="REFTYPES"> <span class="bold_code">MaxNoOfReports = int() | all</span><br> </div> <div class="REFTYPES"> <span class="bold_code">DirString = string()</span><br> </div> <div class="REFTYPES"> <span class="bold_code">ReportType = type() | [type()] | all</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Bool = true | false</span><br> </div> </div> <div class="REFBODY"><p> <p>The function <span class="code">start/1</span> starts the <span class="code">rb_server</span> with the specified options, while <span class="code">start/0</span> starts with default options. The <span class="code">rb_server</span> must be started before reports can be browsed. When the <span class="code">rb_server</span> is started, the files in the specified directory are scanned. The other functions assume that the server has started. </p> <p><span class="code">{start_log, FileName}</span> starts logging to file. All reports will be printed to the named file. The default is <span class="code">standard_io</span>. </p> <p><span class="code">{max, MaxNoOfReports}</span>. Controls how many reports the <span class="code">rb_server</span> should read on start-up. This option is useful as the directory may contain 20.000 reports. If this option is given, the <span class="code">MaxNoOfReports</span> latest reports will be read. The default is 'all'. </p> <p><span class="code">{report_dir, DirString}</span>. Defines the directory where the error log files are located. The default is <span class="code">{sasl, error_logger_mf_dir}</span>. </p> <p><span class="code">{type, ReportType}</span>. Controls what kind of reports the <span class="code">rb_server</span> should read on start-up. <span class="code">ReportType</span> is a supported type, 'all', or a list of supported types. The default is 'all'. </p> <p><span class="code">{abort_on_error, Bool}</span>. This option specifies whether or not logging should be aborted if rb encounters an unprintable report. (You may get a report on incorrect form if the <span class="code">error_logger</span> function <span class="code">error_msg</span> or <span class="code">info_msg</span> has been called with an invalid format string). If <span class="code">Bool</span> is <span class="code">true</span>, rb will stop logging (and print an error message to stdout) if it encounters a badly formatted report. If logging to file is enabled, an error message will be appended to the log file as well. If <span class="code">Bool</span> is <span class="code">false</span> (which is the default value), rb will print an error message to stdout for every bad report it encounters, but the logging process is never aborted. All printable reports will be written. If logging to file is enabled, rb prints <span class="code">* UNPRINTABLE REPORT *</span> in the log file at the location of an unprintable report. </p> </p></div> <p><a name="start_log-1"><span class="bold_code">start_log(FileName)</span></a><br></p> <div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"> <span class="bold_code">FileName = string()</span><br> </div> </div> <div class="REFBODY"><p> <p>Redirects all report output from the RB tool to the specified file. </p> </p></div> <p><a name="stop-0"><span class="bold_code">stop()</span></a><br></p> <div class="REFBODY"><p> <p>Stops the <span class="code">rb_server</span>. </p> </p></div> <p><a name="stop_log-0"><span class="bold_code">stop_log()</span></a><br></p> <div class="REFBODY"><p> <p>Closes the log file. The output from the RB tool will be directed to <span class="code">standard_io</span>. </p> </p></div> </div> <div class="footer"> <hr> <p>Copyright © 1997-2012 Ericsson AB. All Rights Reserved.</p> </div> </div> </div></body> </html>