<!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 -- nteventlog</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="index.html">Reference Manual</a><br><a href="release_notes.html">Release Notes</a><br><a href="../pdf/os_mon-2.2.10.pdf">PDF</a><br><a href="../../../../doc/index.html">Top</a></small><p><strong>OS_Mon</strong><br><strong>Reference Manual</strong><br><small>Version 2.2.10</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="os_mon (App)"><a href="os_mon_app.html">os_mon (App) </a></li> <li id="no" title="cpu_sup " expanded="false">cpu_sup<ul> <li><a href="cpu_sup.html"> Top of manual page </a></li> <li title="nprocs-0"><a href="cpu_sup.html#nprocs-0">nprocs/0</a></li> <li title="avg1-0"><a href="cpu_sup.html#avg1-0">avg1/0</a></li> <li title="avg5-0"><a href="cpu_sup.html#avg5-0">avg5/0</a></li> <li title="avg15-0"><a href="cpu_sup.html#avg15-0">avg15/0</a></li> <li title="util-0"><a href="cpu_sup.html#util-0">util/0</a></li> <li title="util-1"><a href="cpu_sup.html#util-1">util/1</a></li> </ul> </li> <li id="no" title="disksup " expanded="false">disksup<ul> <li><a href="disksup.html"> Top of manual page </a></li> <li title="get_disk_data-0"><a href="disksup.html#get_disk_data-0">get_disk_data/0</a></li> <li title="get_check_interval-0"><a href="disksup.html#get_check_interval-0">get_check_interval/0</a></li> <li title="set_check_interval-1"><a href="disksup.html#set_check_interval-1">set_check_interval/1</a></li> <li title="get_almost_full_threshold-0"><a href="disksup.html#get_almost_full_threshold-0">get_almost_full_threshold/0</a></li> <li title="set_almost_full_threshold-1"><a href="disksup.html#set_almost_full_threshold-1">set_almost_full_threshold/1</a></li> </ul> </li> <li id="no" title="memsup " expanded="false">memsup<ul> <li><a href="memsup.html"> Top of manual page </a></li> <li title="get_memory_data-0"><a href="memsup.html#get_memory_data-0">get_memory_data/0</a></li> <li title="get_system_memory_data-0"><a href="memsup.html#get_system_memory_data-0">get_system_memory_data/0</a></li> <li title="get_os_wordsize-0"><a href="memsup.html#get_os_wordsize-0">get_os_wordsize/0</a></li> <li title="get_check_interval-0"><a href="memsup.html#get_check_interval-0">get_check_interval/0</a></li> <li title="set_check_interval-1"><a href="memsup.html#set_check_interval-1">set_check_interval/1</a></li> <li title="get_procmem_high_watermark-0"><a href="memsup.html#get_procmem_high_watermark-0">get_procmem_high_watermark/0</a></li> <li title="set_procmem_high_watermark-1"><a href="memsup.html#set_procmem_high_watermark-1">set_procmem_high_watermark/1</a></li> <li title="get_sysmem_high_watermark-0"><a href="memsup.html#get_sysmem_high_watermark-0">get_sysmem_high_watermark/0</a></li> <li title="set_sysmem_high_watermark-1"><a href="memsup.html#set_sysmem_high_watermark-1">set_sysmem_high_watermark/1</a></li> <li title="get_helper_timeout-0"><a href="memsup.html#get_helper_timeout-0">get_helper_timeout/0</a></li> <li title="set_helper_timeout-1"><a href="memsup.html#set_helper_timeout-1">set_helper_timeout/1</a></li> </ul> </li> <li id="no" title="os_mon_mib " expanded="false">os_mon_mib<ul> <li><a href="os_mon_mib.html"> Top of manual page </a></li> <li title="load-1"><a href="os_mon_mib.html#load-1">load/1</a></li> <li title="unload-1"><a href="os_mon_mib.html#unload-1">unload/1</a></li> </ul> </li> <li id="no" title="os_sup " expanded="false">os_sup<ul> <li><a href="os_sup.html"> Top of manual page </a></li> <li title="enable-0"><a href="os_sup.html#enable-0">enable/0</a></li> <li title="enable-2"><a href="os_sup.html#enable-2">enable/2</a></li> <li title="disable-0"><a href="os_sup.html#disable-0">disable/0</a></li> <li title="disable-2"><a href="os_sup.html#disable-2">disable/2</a></li> </ul> </li> <li id="loadscrollpos" title="nteventlog " expanded="true">nteventlog<ul> <li><a href="nteventlog.html"> Top of manual page </a></li> <li title="start-2"><a href="nteventlog.html#start-2">start/2</a></li> <li title="start_link-2"><a href="nteventlog.html#start_link-2">start_link/2</a></li> <li title="stop-0"><a href="nteventlog.html#stop-0">stop/0</a></li> </ul> </li> </ul> </div></div> <div id="content"> <div class="innertube"> <!-- refpage --><center><h1>nteventlog</h1></center> <h3>MODULE</h3> <div class="REFBODY">nteventlog</div> <h3>MODULE SUMMARY</h3> <div class="REFBODY">Interface to Windows Event Log</div> <h3>DESCRIPTION</h3> <div class="REFBODY"><p> <p><span class="code">nteventlog</span> provides a generic interface to the Windows event log. It is part of the OS_Mon application, see <span class="bold_code"><a href="os_mon_app.html">os_mon(6)</a></span>. Available for Windows versions where the event log is available. That is, not for Windows 98 and some other older Windows versions, but for most (all?) newer Windows versions.</p> <p>This module is used as the Windows backend for <span class="code">os_sup</span>, see <span class="bold_code"><a href="os_sup.html">os_sup(3)</a></span>.</p> <p>To retain backwards compatibility, this module can also be used to start a standalone <span class="code">nteventlog</span> process which is not part of the OS_Mon supervision tree. When starting such a process, the user has to supply an identifier as well as a callback function to handle the messages.</p> <p>The identifier, an arbitrary string, should be reused whenever the same application (or node) wants to start the process. <span class="code">nteventlog</span> is informed about all events that have arrived to the eventlog since the last accepted message for the current identifier. As long as the same identifier is used, the same eventlog record will not be sent to <span class="code">nteventlog</span> more than once (with the exception of when graved system failures arise, in which case the last records written before the failure may be sent to Erlang again after reboot).</p> <p>If the event log is configured to wrap around automatically, records that have arrived to the log and been overwritten when <span class="code">nteventlog</span> was not running are lost. It however detects this state and loses no records that are not overwritten.</p> <p>The callback function works as described in <span class="code">os_sup(3)</span>.</p> </p></div> <h3>EXPORTS</h3> <p><a name="start-2"><span class="bold_code">start(Identifier, MFA) -> Result</span></a><br><a name="start_link-2"><span class="bold_code">start_link(Identifier, MFA) -> Result</span></a><br></p> <div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"> <span class="bold_code">Identifier = string() | atom()</span><br> </div> <div class="REFTYPES"> <span class="bold_code">MFA = {Mod, Func, Args}</span><br> </div> <div class="REFTYPES"> <span class="bold_code"> Mod = Func = atom()</span><br> </div> <div class="REFTYPES"> <span class="bold_code"> Args = [term()]</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Result = {ok, Pid} | {error, {already_started, Pid}}</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Pid = pid()</span><br> </div> </div> <div class="REFBODY"><p> <p>This function starts the standalone <span class="code">nteventlog</span> process and, if <span class="code">start_link/2</span> is used, links to it.</p> <p><span class="code">Identifier</span> is an identifier as described above.</p> <p><span class="code">MFA</span> is the supplied callback function. When <span class="code">nteventlog</span> receives information about a new event, this function will be called as <span class="code">apply(Mod, Func, [Event|Args])</span> where <span class="code">Event</span> is a tuple</p> </p></div> <p><a name="stop-0"><span class="bold_code">stop() -> stopped</span></a><br></p> <div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"> <span class="bold_code">Result = stopped</span><br> </div> </div> <div class="REFBODY"><p> <p>Stops <span class="code">nteventlog</span>. Usually only used during development. The server does not have to be shut down gracefully to maintain its state.</p> </p></div> <h3><a name="id66405">See Also</a></h3> <div class="REFBODY"> <p><span class="bold_code"><a href="os_mon_app.html">os_mon(6)</a></span>, <span class="bold_code"><a href="os_sup.html">os_sup(3)</a></span></p> <p>Windows NT documentation</p> </div> </div> <div class="footer"> <hr> <p>Copyright © 1997-2012 Ericsson AB. All Rights Reserved.</p> </div> </div> </div></body> </html>