| |
| |
| <!DOCTYPE html> |
| <html lang="en"> |
| <head> |
| <meta charset="utf-8"> |
| <meta http-equiv="X-UA-Compatible" content="IE=edge"> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| |
| |
| |
| |
| <title>Logging — Apache Mynewt latest documentation</title> |
| |
| |
| |
| |
| <link rel="shortcut icon" href="../../../_static/mynewt-logo-only-newt32x32.png"/> |
| |
| |
| |
| |
| <link rel="stylesheet" href="../../../_static/css/theme.css" type="text/css" /> |
| |
| |
| <link rel="stylesheet" href="../../../_static/css/sphinx_theme.css" type="text/css" /> |
| |
| <link rel="stylesheet" href="../../../_static/css/bootstrap-3.0.3.min.css" type="text/css" /> |
| |
| <link rel="stylesheet" href="../../../_static/css/v2.css" type="text/css" /> |
| |
| <link rel="stylesheet" href="../../../_static/css/custom.css" type="text/css" /> |
| |
| <link rel="stylesheet" href="../../../_static/css/restructuredtext.css" type="text/css" /> |
| |
| |
| |
| |
| <link rel="stylesheet" href="../../../_static/css/overrides.css" type="text/css" /> |
| <link rel="index" title="Index" |
| href="../../../genindex.html"/> |
| <link rel="search" title="Search" href="../../../search.html"/> |
| <link rel="top" title="Apache Mynewt latest documentation" href="../../../index.html"/> |
| <link rel="up" title="OS User Guide" href="../../os_user_guide.html"/> |
| <link rel="next" title="BLE User Guide" href="../../../network/index.html"/> |
| <link rel="prev" title="Statistics Module" href="../stats/stats.html"/> |
| |
| |
| <script src="../../../_static/js/modernizr.min.js"></script> |
| |
| |
| <script> |
| (function(i, s, o, g, r, a, m) { |
| i["GoogleAnalyticsObject"] = r; |
| (i[r] = |
| i[r] || |
| function() { |
| (i[r].q = i[r].q || []).push(arguments); |
| }), |
| (i[r].l = 1 * new Date()); |
| (a = s.createElement(o)), (m = s.getElementsByTagName(o)[0]); |
| a.async = 1; |
| a.src = g; |
| m.parentNode.insertBefore(a, m); |
| })(window, document, "script", "//www.google-analytics.com/analytics.js", "ga"); |
| |
| ga("create", "UA-72162311-1", "auto"); |
| ga("send", "pageview"); |
| </script> |
| |
| |
| </head> |
| |
| <body class="not-front page-documentation" role="document" > |
| <div id="wrapper"> |
| <div class="container"> |
| <div id="banner" class="row v2-main-banner"> |
| <a class="logo-cell" href="/"> |
| <img class="logo" src="../../../_static/img/logo.png"> |
| </a> |
| <div class="tagline-cell"> |
| <h4 class="tagline">An OS to build, deploy and securely manage billions of devices</h4> |
| </div> |
| <div class="news-cell"> |
| <div class="well"> |
| <h4>Latest News:</h4> <a href="/download">Apache Mynewt 1.12.0, Apache NimBLE 1.7.0 </a> released April 4, 2024) |
| </div> |
| </div> |
| </div> |
| </div> |
| |
| <header> |
| <nav id="navbar" class="navbar navbar-inverse" role="navigation"> |
| <div class="container"> |
| <!-- Collapsed navigation --> |
| <div class="navbar-header"> |
| <!-- Expander button --> |
| <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"> |
| <span class="sr-only">Toggle navigation</span> |
| <span class="icon-bar"></span> |
| <span class="icon-bar"></span> |
| <span class="icon-bar"></span> |
| </button> |
| |
| </div> |
| |
| <!-- Expanded navigation --> |
| <div class="navbar-collapse collapse"> |
| <!-- Main navigation --> |
| <ul class="nav navbar-nav navbar-right"> |
| <li> |
| <a href="/"><i class="fa fa-home" style="font-size: larger;"></i></a> |
| </li> |
| <li class="important"> |
| <a href="/quick-start/">Quick Start</a> |
| </li> |
| <li> |
| <a href="/about/">About</a> |
| </li> |
| <li> |
| <a href="/talks/">Talks</a> |
| </li> |
| <li class="active"> |
| <a href="/documentation/">Documentation</a> |
| </li> |
| <li> |
| <a href="/download/">Download</a> |
| </li> |
| <li> |
| <a href="/community/">Community</a> |
| </li> |
| <li> |
| <a href="/events/">Events</a> |
| </li> |
| </ul> |
| |
| <!-- Search, Navigation and Repo links --> |
| <ul class="nav navbar-nav navbar-right"> |
| |
| </ul> |
| </div> |
| </div> |
| </nav> |
| </header> |
| <!-- STARTS MAIN CONTENT --> |
| <div id="main-content"> |
| |
| |
| |
| |
| |
| |
| <div id="breadcrumb"> |
| <div class="container"> |
| <a href="/documentation/">Docs</a> / |
| |
| <a href="../../os_user_guide.html">OS User Guide</a> / |
| |
| Logging |
| |
| <div class="sourcelink"> |
| <a href="https://github.com/apache/mynewt-core/edit/master/docs/os/modules/logs/logs.rst" class="icon icon-github" |
| rel="nofollow"> Edit on GitHub</a> |
| </div> |
| </div> |
| </div> |
| <!-- STARTS CONTAINER --> |
| <div class="container"> |
| <!-- STARTS .content --> |
| <div id="content" class="row"> |
| |
| <!-- STARTS .container-sidebar --> |
| <div class="container-sidebar col-xs-12 col-sm-3"> |
| <div id="docSidebar" class="sticky-container"> |
| <div role="search" class="sphinx-search"> |
| <form id="rtd-search-form" class="wy-form" action="../../../search.html" method="get"> |
| <input type="text" name="q" placeholder="Search documentation" class="search-documentation" /> |
| <input type="hidden" name="check_keywords" value="yes" /> |
| <input type="hidden" name="area" value="default" /> |
| </form> |
| </div> |
| <!-- Note: only works when deployed --> |
| <select class="form-control" onchange="if (this.value) window.location.href=this.value"> |
| <option value="/latest" selected> |
| Version: latest |
| </option> |
| <option value="/v1_12_0" > |
| Version: 1.12.0 |
| </option> |
| <option value="/v1_11_0" > |
| Version: 1.11.0 |
| </option> |
| <option value="/v1_10_0" > |
| Version: 1.10.0 |
| </option> |
| <option value="/v1_9_0" > |
| Version: 1.9.0 |
| </option> |
| <option value="/v1_8_0" > |
| Version: 1.8.0 |
| </option> |
| <option value="/v1_7_0" > |
| Version: 1.7.0 |
| </option> |
| <option value="/v1_6_0" > |
| Version: 1.6.0 |
| </option> |
| <option value="/v1_5_0" > |
| Version: 1.5.0 |
| </option> |
| <option value="/v1_4_0" selected="selected" > |
| Version: 1.4.0 |
| </option> |
| <option value="/v1_3_0/os/introduction" > |
| Version: 1.3.0 |
| </option> |
| <option value="/v1_2_0/os/introduction" > |
| Version: 1.2.0 |
| </option> |
| <option value="/v1_1_0/os/introduction" > |
| Version: 1.1.0 |
| </option> |
| <option value="/v1_0_0/os/introduction" > |
| Version: 1.0.0 |
| </option> |
| <option value="/v0_9_0/os/introduction" > |
| Version: 0.9.0 |
| </option> |
| </select> |
| <div class="region region-sidebar"> |
| <div class="docs-menu"> |
| |
| |
| |
| <ul class="current"> |
| <li class="toctree-l1"><a class="reference internal" href="../../../index.html">Introduction</a></li> |
| <li class="toctree-l1"><a class="reference internal" href="../../../get_started/index.html">Setup & Get Started</a></li> |
| <li class="toctree-l1"><a class="reference internal" href="../../../concepts.html">Concepts</a></li> |
| <li class="toctree-l1"><a class="reference internal" href="../../../tutorials/tutorials.html">Tutorials</a></li> |
| <li class="toctree-l1"><a class="reference internal" href="../../../external_links.html">Third-party Resources</a></li> |
| <li class="toctree-l1 current"><a class="reference internal" href="../../os_user_guide.html">OS User Guide</a><ul class="current"> |
| <li class="toctree-l2"><a class="reference internal" href="../../core_os/mynewt_os.html">Kernel</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="../system_modules.html">System</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="../hal/hal.html">Hardware Abstraction</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="../bootloader/bootloader.html">Secure Bootloader</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="../split/split.html">Split Images</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="../../core_os/porting/port_os.html">Porting Guide</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="../sysinitconfig/sysinitconfig.html">Compile-Time Configuration</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="../console/console.html">Console</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="../shell/shell.html">Shell</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="../testutil/testutil.html">Test Utilities</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="../json/json.html">JSON</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="../stats/stats.html">Statistics</a></li> |
| <li class="toctree-l2 current"><a class="current reference internal" href="#">Logs</a></li> |
| </ul> |
| </li> |
| <li class="toctree-l1"><a class="reference internal" href="../../../network/index.html">BLE User Guide</a></li> |
| <li class="toctree-l1"><a class="reference internal" href="../../../newt/index.html">Newt Tool Guide</a></li> |
| <li class="toctree-l1"><a class="reference internal" href="../../../newtmgr/index.html">Newt Manager Guide</a></li> |
| <li class="toctree-l1"><a class="reference internal" href="../../../mynewt_faq/index.html">Mynewt FAQ</a></li> |
| <li class="toctree-l1"><a class="reference internal" href="../../../misc/index.html">Appendix</a></li> |
| </ul> |
| |
| |
| |
| </div> |
| </div> |
| </div> |
| <!-- ENDS STICKY CONTAINER --> |
| </div> |
| <!-- ENDS .container-sidebar --> |
| |
| <div class="col-xs-12 col-sm-9"> |
| |
| <div class="alert alert-warning"> |
| <p> |
| Version 1.4.0 is not the most recent version of the |
| Apache Mynewt documentation. Click <a href="/latest">here</a> to |
| read the latest version. |
| </p> |
| </div> |
| |
| |
| |
| <div class=""> |
| <div class="rst-content"> |
| <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> |
| <div itemprop="articleBody"> |
| |
| <div class="section" id="logging"> |
| <h1>Logging<a class="headerlink" href="#logging" title="Permalink to this headline">¶</a></h1> |
| <p>Mynewt log package supports logging of information within a Mynewt |
| application. It allows packages to define their own log streams with |
| separate names. It also allows an application to control the output |
| destination of logs.</p> |
| <div class="contents local topic" id="contents"> |
| <ul class="simple"> |
| <li><p><a class="reference internal" href="#syscfg-settings" id="id1">Syscfg Settings</a></p> |
| <ul> |
| <li><p><a class="reference internal" href="#log" id="id2">Log</a></p></li> |
| <li><p><a class="reference internal" href="#log-handler" id="id3">Log Handler</a></p></li> |
| <li><p><a class="reference internal" href="#configuring-logging-for-packages-that-an-application-uses" id="id4">Configuring Logging for Packages that an Application Uses</a></p></li> |
| <li><p><a class="reference internal" href="#implementing-a-package-that-uses-logging" id="id5">Implementing a Package that Uses Logging</a></p></li> |
| <li><p><a class="reference internal" href="#log-api-and-log-levels" id="id6">Log API and Log Levels</a></p></li> |
| </ul> |
| </li> |
| </ul> |
| </div> |
| <p>### Description</p> |
| <p>In the Mynewt OS, the log package comes in two versions:</p> |
| <ul class="simple"> |
| <li><p>The <code class="docutils literal notranslate"><span class="pre">sys/log/full</span></code> package implements the complete log |
| functionality and API.</p></li> |
| <li><p>The <code class="docutils literal notranslate"><span class="pre">sys/log/stub</span></code> package implements stubs for the API.</p></li> |
| </ul> |
| <p>Both packages export the <code class="docutils literal notranslate"><span class="pre">log</span></code> API, and any package that uses the log |
| API must list <code class="docutils literal notranslate"><span class="pre">log</span></code> as a requirement in its <code class="docutils literal notranslate"><span class="pre">pkg.yml</span></code> file as |
| follows:</p> |
| <div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="go">pkg.req_apis:</span> |
| <span class="go"> - log</span> |
| </pre></div> |
| </div> |
| <p>The application’s <code class="docutils literal notranslate"><span class="pre">pkg.yml</span></code> file specifies the version of the log |
| package to use. A project that requires the full logging capability must |
| list the <code class="docutils literal notranslate"><span class="pre">sys/log/full</span></code> package as a dependency in its <code class="docutils literal notranslate"><span class="pre">pkg.yml</span></code> |
| file:</p> |
| <div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="go">pkg.deps:</span> |
| <span class="go"> - sys/log/full</span> |
| </pre></div> |
| </div> |
| <p>You can use the <code class="docutils literal notranslate"><span class="pre">sys/log/stub</span></code> package if you want to build your |
| application without logging to reduce code size.</p> |
| <div class="section" id="syscfg-settings"> |
| <h2><a class="toc-backref" href="#id1">Syscfg Settings</a><a class="headerlink" href="#syscfg-settings" title="Permalink to this headline">¶</a></h2> |
| <p>The <code class="docutils literal notranslate"><span class="pre">LOG_LEVEL</span></code> syscfg setting allows you to specify the level of logs |
| to enable in your application. Only logs for levels higher or equal to |
| the value of <code class="docutils literal notranslate"><span class="pre">LOG_LEVEL</span></code> are enabled. The amount of logs you include |
| affects your application code size. <code class="docutils literal notranslate"><span class="pre">LOG_LEVEL:</span> <span class="pre">0</span></code> specifies |
| LOG_LEVEL_DEBUG and includes all logs. You set <code class="docutils literal notranslate"><span class="pre">LOG_LEVEL:</span> <span class="pre">255</span></code> to |
| disable all logging. The <code class="docutils literal notranslate"><span class="pre">#defines</span></code> for the log levels are specified |
| in the <code class="docutils literal notranslate"><span class="pre">sys/log/full/include/log/log.h</span></code> file. For example the |
| following setting corresponds to LOG_LEVEL_ERROR:</p> |
| <div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="go">syscfg.vals:</span> |
| <span class="go"> LOG_LEVEL: 3</span> |
| </pre></div> |
| </div> |
| <p>The <code class="docutils literal notranslate"><span class="pre">LOG_LEVEL</span></code> setting applies to all modules registered with the log |
| package.</p> |
| <div class="section" id="log"> |
| <h3><a class="toc-backref" href="#id2">Log</a><a class="headerlink" href="#log" title="Permalink to this headline">¶</a></h3> |
| <p>Each log stream requires a <code class="docutils literal notranslate"><span class="pre">log</span></code> structure to define its logging |
| properties.</p> |
| </div> |
| <div class="section" id="log-handler"> |
| <h3><a class="toc-backref" href="#id3">Log Handler</a><a class="headerlink" href="#log-handler" title="Permalink to this headline">¶</a></h3> |
| <p>To use logs, a log handler that handles the I/O from the log is |
| required. The log package comes with three pre-built log handlers:</p> |
| <ul class="simple"> |
| <li><p>console – streams log events directly to the console port. Does not |
| support walking and reading.</p></li> |
| <li><p>cbmem – writes/reads log events to a circular buffer. Supports |
| walking and reading for access by newtmgr and shell commands.</p></li> |
| <li><p>fcb – writes/reads log events to a <a class="reference external" href="/os/modules/fcb/fcb.html">flash circular |
| buffer</a>. Supports walking and reading for |
| access by newtmgr and shell commands.</p></li> |
| </ul> |
| <p>In addition, it is possible to create custom log handlers for other |
| methods. Examples may include</p> |
| <ul class="simple"> |
| <li><p>Flash file system</p></li> |
| <li><p>Flat flash buffer</p></li> |
| <li><p>Streamed over some other interface</p></li> |
| </ul> |
| <p>To use logging, you typically do not need to create your own log |
| handler. You can use one of the pre-built ones.</p> |
| <p>A package or an application must define a variable of type |
| <code class="docutils literal notranslate"><span class="pre">struct</span> <span class="pre">log</span></code> and register a log handler for it with the log package. |
| It must call the <code class="docutils literal notranslate"><span class="pre">log_register()</span></code> function to specify the log handler |
| to use:</p> |
| <div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="n">log_register</span><span class="p">(</span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">name</span><span class="p">,</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">log</span><span class="w"> </span><span class="o">*</span><span class="n">log</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">log_handler</span><span class="w"> </span><span class="o">*</span><span class="n">lh</span><span class="p">,</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="o">*</span><span class="n">arg</span><span class="p">,</span><span class="w"> </span><span class="kt">uint8_t</span><span class="w"> </span><span class="n">level</span><span class="p">)</span> |
| </pre></div> |
| </div> |
| <p>The parameters are:</p> |
| <ul class="simple"> |
| <li><p><code class="docutils literal notranslate"><span class="pre">name</span></code>- Name of the log stream.</p></li> |
| <li><p><code class="docutils literal notranslate"><span class="pre">log</span></code> - Log instance to register,</p></li> |
| <li><p><code class="docutils literal notranslate"><span class="pre">lh</span></code> - Pointer to the log handler. You can specify one of the |
| pre-built ones:</p> |
| <ul> |
| <li><p><code class="docutils literal notranslate"><span class="pre">&log_console_handler</span></code> for console</p></li> |
| <li><p><code class="docutils literal notranslate"><span class="pre">&log_cbm_handler</span></code> for circular buffer</p></li> |
| <li><p><code class="docutils literal notranslate"><span class="pre">&log_fcb_handler</span></code> for flash circular buffer</p></li> |
| </ul> |
| </li> |
| <li><p><code class="docutils literal notranslate"><span class="pre">arg</span></code> - Opaque argument that the specified log handler uses. The |
| value of this argument depends on the log handler you specify:</p> |
| <ul> |
| <li><p>NULL for the <code class="docutils literal notranslate"><span class="pre">log_console_handler</span></code>.</p></li> |
| <li><p>Pointer to an initialized <code class="docutils literal notranslate"><span class="pre">cbmem</span></code> structure (see <code class="docutils literal notranslate"><span class="pre">util/cbmem</span></code> |
| package) for the <code class="docutils literal notranslate"><span class="pre">log_cbm_handler</span></code>.</p></li> |
| <li><p>Pointer to an initialized <code class="docutils literal notranslate"><span class="pre">fcb_log</span></code> structure (see <code class="docutils literal notranslate"><span class="pre">fs/fcb</span></code> |
| package) for the <code class="docutils literal notranslate"><span class="pre">log_fcb_handler</span></code>.</p></li> |
| </ul> |
| </li> |
| </ul> |
| <p>Typically, a package that uses logging defines a global variable, such |
| as <code class="docutils literal notranslate"><span class="pre">my_package_log</span></code>, of type <code class="docutils literal notranslate"><span class="pre">struct</span> <span class="pre">log</span></code>. The package can call the |
| <code class="docutils literal notranslate"><span class="pre">log_register()</span></code> function with default values, but usually an |
| application will override the logging properties and where to log to. |
| There are two ways a package can allow an application to override the |
| values:</p> |
| <ul class="simple"> |
| <li><p>Define system configuration settings that an application can set and |
| the package can then call the <code class="docutils literal notranslate"><span class="pre">log_register()</span></code> function with the |
| configuration values.</p></li> |
| <li><p>Make the <code class="docutils literal notranslate"><span class="pre">my_package_log</span></code> variable external and let the application |
| call the <code class="docutils literal notranslate"><span class="pre">log_register()</span></code> function to specify a log handler for its |
| specific purpose.</p></li> |
| </ul> |
| </div> |
| <div class="section" id="configuring-logging-for-packages-that-an-application-uses"> |
| <h3><a class="toc-backref" href="#id4">Configuring Logging for Packages that an Application Uses</a><a class="headerlink" href="#configuring-logging-for-packages-that-an-application-uses" title="Permalink to this headline">¶</a></h3> |
| <p>Here is an example of how an application can set the log handlers for |
| the logs of the packages that the application includes.</p> |
| <p>In this example, the <code class="docutils literal notranslate"><span class="pre">package1</span></code> package defines the variable |
| <code class="docutils literal notranslate"><span class="pre">package1_log</span></code> of type <code class="docutils literal notranslate"><span class="pre">struct</span> <span class="pre">log</span></code> and externs the variable. |
| Similarly, the <code class="docutils literal notranslate"><span class="pre">package2</span></code> package defines the variable |
| <code class="docutils literal notranslate"><span class="pre">package2_log</span></code> and externs the variable. The application sets logs for |
| <code class="docutils literal notranslate"><span class="pre">package1</span></code> to use console and sets logs for <code class="docutils literal notranslate"><span class="pre">package2</span></code> to use a |
| circular buffer.</p> |
| <div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="cp">#include</span><span class="w"> </span><span class="cpf"><package1/package1.h></span> |
| <span class="cp">#include</span><span class="w"> </span><span class="cpf"><package2/package2.h></span> |
| <span class="cp">#include</span><span class="w"> </span><span class="cpf"><util/cbmem.h></span> |
| |
| <span class="cp">#include</span><span class="w"> </span><span class="cpf"><log/log.h></span> |
| |
| <span class="k">static</span><span class="w"> </span><span class="kt">uint32_t</span><span class="w"> </span><span class="n">cbmem_buf</span><span class="p">[</span><span class="n">MAX_CBMEM_BUF</span><span class="p">];</span> |
| <span class="k">static</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">cbmem</span><span class="w"> </span><span class="n">cbmem</span><span class="p">;</span> |
| |
| |
| <span class="kt">void</span><span class="w"> </span><span class="nf">app_log_init</span><span class="p">(</span><span class="kt">void</span><span class="p">)</span> |
| <span class="p">{</span> |
| |
| |
| |
| <span class="w"> </span><span class="n">log_register</span><span class="p">(</span><span class="s">"package1_log"</span><span class="p">,</span><span class="w"> </span><span class="o">&</span><span class="n">package1_log</span><span class="p">,</span><span class="w"> </span><span class="o">&</span><span class="n">log_console_handler</span><span class="p">,</span><span class="w"> </span><span class="nb">NULL</span><span class="p">,</span><span class="w"> </span><span class="n">LOG_SYSLEVEL</span><span class="p">);</span> |
| |
| <span class="w"> </span><span class="n">cbmem_init</span><span class="p">(</span><span class="o">&</span><span class="n">cbmem</span><span class="p">,</span><span class="w"> </span><span class="n">cbmem_buf</span><span class="p">,</span><span class="w"> </span><span class="n">MAX_CBMEM_BUF</span><span class="p">);</span> |
| <span class="w"> </span><span class="n">log_register</span><span class="p">(</span><span class="s">"package2_log"</span><span class="p">,</span><span class="w"> </span><span class="o">&</span><span class="n">package2_log</span><span class="p">,</span><span class="w"> </span><span class="o">&</span><span class="n">log_cbmem_handler</span><span class="p">,</span><span class="w"> </span><span class="o">&</span><span class="n">cbmem</span><span class="p">,</span><span class="w"> </span><span class="n">LOG_SYSLEVEL</span><span class="p">);</span> |
| |
| <span class="p">}</span> |
| </pre></div> |
| </div> |
| </div> |
| <div class="section" id="implementing-a-package-that-uses-logging"> |
| <h3><a class="toc-backref" href="#id5">Implementing a Package that Uses Logging</a><a class="headerlink" href="#implementing-a-package-that-uses-logging" title="Permalink to this headline">¶</a></h3> |
| <p>This example shows how a package logs to console. The package registers |
| default logging properties to use the console, but allows an application |
| to override the values. It defines the <code class="docutils literal notranslate"><span class="pre">my_package_log</span></code> variable and |
| makes it external so an application can override log handler.</p> |
| <p>Make the <code class="docutils literal notranslate"><span class="pre">my_package_log</span></code> variable external:</p> |
| <div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="cm">/* my_package.h*/</span> |
| |
| <span class="cm">/* pick a unique name here */</span> |
| <span class="k">extern</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">log</span><span class="w"> </span><span class="n">my_package_log</span><span class="p">;</span> |
| </pre></div> |
| </div> |
| <p>Define the <code class="docutils literal notranslate"><span class="pre">my_package_log</span></code> variable and register the console log |
| handler:</p> |
| <div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="cm">/* my_package.c */</span> |
| |
| <span class="k">struct</span><span class="w"> </span><span class="nc">log</span><span class="w"> </span><span class="n">my_package_log</span><span class="p">;</span> |
| |
| <span class="p">{</span> |
| <span class="w"> </span><span class="p">...</span> |
| |
| <span class="w"> </span><span class="cm">/* register my log with a name to the system */</span> |
| <span class="w"> </span><span class="n">log_register</span><span class="p">(</span><span class="s">"log"</span><span class="p">,</span><span class="w"> </span><span class="o">&</span><span class="n">my_package_log</span><span class="p">,</span><span class="w"> </span><span class="o">&</span><span class="n">log_console_handler</span><span class="p">,</span><span class="w"> </span><span class="nb">NULL</span><span class="p">,</span><span class="w"> </span><span class="n">LOG_LEVEL_DEBUG</span><span class="p">);</span> |
| |
| <span class="w"> </span><span class="n">LOG_DEBUG</span><span class="p">(</span><span class="o">&</span><span class="n">my_package_log</span><span class="p">,</span><span class="w"> </span><span class="n">LOG_MODULE_DEFAULT</span><span class="p">,</span><span class="w"> </span><span class="s">"bla"</span><span class="p">);</span> |
| <span class="w"> </span><span class="n">LOG_DEBUG</span><span class="p">(</span><span class="o">&</span><span class="n">my_package_log</span><span class="p">,</span><span class="w"> </span><span class="n">LOG_MODULE_DEFAULT</span><span class="p">,</span><span class="w"> </span><span class="s">"bab"</span><span class="p">);</span> |
| <span class="p">}</span> |
| </pre></div> |
| </div> |
| </div> |
| <div class="section" id="log-api-and-log-levels"> |
| <h3><a class="toc-backref" href="#id6">Log API and Log Levels</a><a class="headerlink" href="#log-api-and-log-levels" title="Permalink to this headline">¶</a></h3> |
| <div class="breathe-sectiondef docutils container"> |
| <p class="breathe-sectiondef-title rubric" id="breathe-section-title-defines">Defines</p> |
| <dl class="c macro"> |
| <dt id="c.LOG_VERSION_V3"> |
| <span class="target" id="full_2include_2log_2log_8h_1a8f8ebd232ebfdf36ba7da9c5b6691929"></span><code class="sig-name descname"><span class="pre">LOG_VERSION_V3</span></code><a class="headerlink" href="#c.LOG_VERSION_V3" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c macro"> |
| <dt id="c.LOG_VERSION_V2"> |
| <span class="target" id="full_2include_2log_2log_8h_1aad6d6d34f089e4a0b9004a18083d1753"></span><code class="sig-name descname"><span class="pre">LOG_VERSION_V2</span></code><a class="headerlink" href="#c.LOG_VERSION_V2" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c macro"> |
| <dt id="c.LOG_VERSION_V1"> |
| <span class="target" id="full_2include_2log_2log_8h_1a8f833df98f04f2e0c739309939ec58da"></span><code class="sig-name descname"><span class="pre">LOG_VERSION_V1</span></code><a class="headerlink" href="#c.LOG_VERSION_V1" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c macro"> |
| <dt id="c.LOG_TYPE_STREAM"> |
| <span class="target" id="full_2include_2log_2log_8h_1a610563bb3f6a690948711c0300b758bf"></span><code class="sig-name descname"><span class="pre">LOG_TYPE_STREAM</span></code><a class="headerlink" href="#c.LOG_TYPE_STREAM" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c macro"> |
| <dt id="c.LOG_TYPE_MEMORY"> |
| <span class="target" id="full_2include_2log_2log_8h_1a9938fba7afed18c9f246cba1755daa77"></span><code class="sig-name descname"><span class="pre">LOG_TYPE_MEMORY</span></code><a class="headerlink" href="#c.LOG_TYPE_MEMORY" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c macro"> |
| <dt id="c.LOG_TYPE_STORAGE"> |
| <span class="target" id="full_2include_2log_2log_8h_1a4e0bc8d935d770577b20fa41ba7d65e8"></span><code class="sig-name descname"><span class="pre">LOG_TYPE_STORAGE</span></code><a class="headerlink" href="#c.LOG_TYPE_STORAGE" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c macro"> |
| <dt id="c.LOG_ENTRY_HDR_SIZE"> |
| <span class="target" id="full_2include_2log_2log_8h_1aa351bb8575008aaa9457819cbde1cea1"></span><code class="sig-name descname"><span class="pre">LOG_ENTRY_HDR_SIZE</span></code><a class="headerlink" href="#c.LOG_ENTRY_HDR_SIZE" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c macro"> |
| <dt id="c.LOG_LEVEL_DEBUG"> |
| <span class="target" id="full_2include_2log_2log_8h_1a130224df8c6bf22a688e3cb74a45689a"></span><code class="sig-name descname"><span class="pre">LOG_LEVEL_DEBUG</span></code><a class="headerlink" href="#c.LOG_LEVEL_DEBUG" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c macro"> |
| <dt id="c.LOG_LEVEL_INFO"> |
| <span class="target" id="full_2include_2log_2log_8h_1a2e25fe130cf710da4ad800747fdd51f3"></span><code class="sig-name descname"><span class="pre">LOG_LEVEL_INFO</span></code><a class="headerlink" href="#c.LOG_LEVEL_INFO" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c macro"> |
| <dt id="c.LOG_LEVEL_WARN"> |
| <span class="target" id="full_2include_2log_2log_8h_1a14f43a1fab62b98fc88603cdb988de3d"></span><code class="sig-name descname"><span class="pre">LOG_LEVEL_WARN</span></code><a class="headerlink" href="#c.LOG_LEVEL_WARN" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c macro"> |
| <dt id="c.LOG_LEVEL_ERROR"> |
| <span class="target" id="full_2include_2log_2log_8h_1a742fc70e331d7e568bd893c514756a29"></span><code class="sig-name descname"><span class="pre">LOG_LEVEL_ERROR</span></code><a class="headerlink" href="#c.LOG_LEVEL_ERROR" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c macro"> |
| <dt id="c.LOG_LEVEL_CRITICAL"> |
| <span class="target" id="full_2include_2log_2log_8h_1af6fcf65d545308183defd25bffce73e3"></span><code class="sig-name descname"><span class="pre">LOG_LEVEL_CRITICAL</span></code><a class="headerlink" href="#c.LOG_LEVEL_CRITICAL" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c macro"> |
| <dt id="c.LOG_LEVEL_MAX"> |
| <span class="target" id="full_2include_2log_2log_8h_1ab182a20ea4584e81f84c4a04467e4cfa"></span><code class="sig-name descname"><span class="pre">LOG_LEVEL_MAX</span></code><a class="headerlink" href="#c.LOG_LEVEL_MAX" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c macro"> |
| <dt id="c.LOG_LEVEL_STR"> |
| <span class="target" id="full_2include_2log_2log_8h_1a4badbac64bbf12778ae3658b845c6a22"></span><code class="sig-name descname"><span class="pre">LOG_LEVEL_STR</span></code><span class="sig-paren">(</span><em><span class="pre">level</span></em><span class="sig-paren">)</span><a class="headerlink" href="#c.LOG_LEVEL_STR" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c macro"> |
| <dt id="c.LOG_MODULE_DEFAULT"> |
| <span class="target" id="full_2include_2log_2log_8h_1afcc593f20949de18ee3cf3e15b8d73c3"></span><code class="sig-name descname"><span class="pre">LOG_MODULE_DEFAULT</span></code><a class="headerlink" href="#c.LOG_MODULE_DEFAULT" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c macro"> |
| <dt id="c.LOG_MODULE_OS"> |
| <span class="target" id="full_2include_2log_2log_8h_1afc3a48733fc06ae95b53c935ca672f4d"></span><code class="sig-name descname"><span class="pre">LOG_MODULE_OS</span></code><a class="headerlink" href="#c.LOG_MODULE_OS" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c macro"> |
| <dt id="c.LOG_MODULE_NEWTMGR"> |
| <span class="target" id="full_2include_2log_2log_8h_1ab5bb645ef959e2d20cc05e28a5492742"></span><code class="sig-name descname"><span class="pre">LOG_MODULE_NEWTMGR</span></code><a class="headerlink" href="#c.LOG_MODULE_NEWTMGR" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c macro"> |
| <dt id="c.LOG_MODULE_NIMBLE_CTLR"> |
| <span class="target" id="full_2include_2log_2log_8h_1acd177fe2da3bd6f211bba6f23e8e18bd"></span><code class="sig-name descname"><span class="pre">LOG_MODULE_NIMBLE_CTLR</span></code><a class="headerlink" href="#c.LOG_MODULE_NIMBLE_CTLR" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c macro"> |
| <dt id="c.LOG_MODULE_NIMBLE_HOST"> |
| <span class="target" id="full_2include_2log_2log_8h_1a84536d59ade383ed2799242c487dbaf0"></span><code class="sig-name descname"><span class="pre">LOG_MODULE_NIMBLE_HOST</span></code><a class="headerlink" href="#c.LOG_MODULE_NIMBLE_HOST" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c macro"> |
| <dt id="c.LOG_MODULE_NFFS"> |
| <span class="target" id="full_2include_2log_2log_8h_1a2c5d28dba57814e699bd835b4c6723b7"></span><code class="sig-name descname"><span class="pre">LOG_MODULE_NFFS</span></code><a class="headerlink" href="#c.LOG_MODULE_NFFS" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c macro"> |
| <dt id="c.LOG_MODULE_REBOOT"> |
| <span class="target" id="full_2include_2log_2log_8h_1aec990f3bd497c2c0a0c9fbb42ed64a47"></span><code class="sig-name descname"><span class="pre">LOG_MODULE_REBOOT</span></code><a class="headerlink" href="#c.LOG_MODULE_REBOOT" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c macro"> |
| <dt id="c.LOG_MODULE_IOTIVITY"> |
| <span class="target" id="full_2include_2log_2log_8h_1ac68f5648979cf7f9cc91ff5802676f29"></span><code class="sig-name descname"><span class="pre">LOG_MODULE_IOTIVITY</span></code><a class="headerlink" href="#c.LOG_MODULE_IOTIVITY" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c macro"> |
| <dt id="c.LOG_MODULE_TEST"> |
| <span class="target" id="full_2include_2log_2log_8h_1a8bbdc9fb6142c49d266fe0699ec46b3c"></span><code class="sig-name descname"><span class="pre">LOG_MODULE_TEST</span></code><a class="headerlink" href="#c.LOG_MODULE_TEST" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c macro"> |
| <dt id="c.LOG_MODULE_PERUSER"> |
| <span class="target" id="full_2include_2log_2log_8h_1a8f8acd99efa6d4111cd1694981f7af76"></span><code class="sig-name descname"><span class="pre">LOG_MODULE_PERUSER</span></code><a class="headerlink" href="#c.LOG_MODULE_PERUSER" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c macro"> |
| <dt id="c.LOG_MODULE_MAX"> |
| <span class="target" id="full_2include_2log_2log_8h_1a7b7c83be87eed5d45ae00b7a2c018dd4"></span><code class="sig-name descname"><span class="pre">LOG_MODULE_MAX</span></code><a class="headerlink" href="#c.LOG_MODULE_MAX" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c macro"> |
| <dt id="c.LOG_MODULE_STR"> |
| <span class="target" id="full_2include_2log_2log_8h_1aea345a9b707b66dec9fe387d1691941b"></span><code class="sig-name descname"><span class="pre">LOG_MODULE_STR</span></code><span class="sig-paren">(</span><em><span class="pre">module</span></em><span class="sig-paren">)</span><a class="headerlink" href="#c.LOG_MODULE_STR" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c macro"> |
| <dt id="c.LOG_ETYPE_STRING"> |
| <span class="target" id="full_2include_2log_2log_8h_1affb3bfb2beea27f1970a8c1b44456d15"></span><code class="sig-name descname"><span class="pre">LOG_ETYPE_STRING</span></code><a class="headerlink" href="#c.LOG_ETYPE_STRING" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c macro"> |
| <dt id="c.LOG_STORE_CONSOLE"> |
| <span class="target" id="full_2include_2log_2log_8h_1a82772ffedd29b7cce142d4c978ecbd5f"></span><code class="sig-name descname"><span class="pre">LOG_STORE_CONSOLE</span></code><a class="headerlink" href="#c.LOG_STORE_CONSOLE" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c macro"> |
| <dt id="c.LOG_STORE_CBMEM"> |
| <span class="target" id="full_2include_2log_2log_8h_1a3e17cfbe36720bdad5fcff8f80382325"></span><code class="sig-name descname"><span class="pre">LOG_STORE_CBMEM</span></code><a class="headerlink" href="#c.LOG_STORE_CBMEM" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c macro"> |
| <dt id="c.LOG_STORE_FCB"> |
| <span class="target" id="full_2include_2log_2log_8h_1a21703828bda2b011970b2b50e654cf4e"></span><code class="sig-name descname"><span class="pre">LOG_STORE_FCB</span></code><a class="headerlink" href="#c.LOG_STORE_FCB" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c macro"> |
| <dt id="c.UTC01_01_2016"> |
| <span class="target" id="full_2include_2log_2log_8h_1afb3920808552eaf1f7cad9fae67dd745"></span><code class="sig-name descname"><span class="pre">UTC01_01_2016</span></code><a class="headerlink" href="#c.UTC01_01_2016" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c macro"> |
| <dt id="c.LOG_NAME_MAX_LEN"> |
| <span class="target" id="full_2include_2log_2log_8h_1ae6c3f940d1b2398739150496625b6233"></span><code class="sig-name descname"><span class="pre">LOG_NAME_MAX_LEN</span></code><a class="headerlink" href="#c.LOG_NAME_MAX_LEN" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c macro"> |
| <dt id="c.LOG_DEBUG"> |
| <span class="target" id="full_2include_2log_2log_8h_1ad9197501ccd575fd396cd9f0c54e9910"></span><code class="sig-name descname"><span class="pre">LOG_DEBUG</span></code><span class="sig-paren">(</span><em><span class="pre">__l</span></em>, <em><span class="pre">__mod</span></em>, <span class="pre">...</span><span class="sig-paren">)</span><a class="headerlink" href="#c.LOG_DEBUG" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c macro"> |
| <dt id="c.LOG_INFO"> |
| <span class="target" id="full_2include_2log_2log_8h_1a85e37bd6bbc7b160f9db4fd74b8b94cc"></span><code class="sig-name descname"><span class="pre">LOG_INFO</span></code><span class="sig-paren">(</span><em><span class="pre">__l</span></em>, <em><span class="pre">__mod</span></em>, <em><span class="pre">__msg</span></em>, <span class="pre">...</span><span class="sig-paren">)</span><a class="headerlink" href="#c.LOG_INFO" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c macro"> |
| <dt id="c.LOG_WARN"> |
| <span class="target" id="full_2include_2log_2log_8h_1a43bc7c614bb8622e419ee464dcc65cd3"></span><code class="sig-name descname"><span class="pre">LOG_WARN</span></code><span class="sig-paren">(</span><em><span class="pre">__l</span></em>, <em><span class="pre">__mod</span></em>, <em><span class="pre">__msg</span></em>, <span class="pre">...</span><span class="sig-paren">)</span><a class="headerlink" href="#c.LOG_WARN" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c macro"> |
| <dt id="c.LOG_ERROR"> |
| <span class="target" id="full_2include_2log_2log_8h_1ae337790f2ad92df48e52dd5890425c00"></span><code class="sig-name descname"><span class="pre">LOG_ERROR</span></code><span class="sig-paren">(</span><em><span class="pre">__l</span></em>, <em><span class="pre">__mod</span></em>, <em><span class="pre">__msg</span></em>, <span class="pre">...</span><span class="sig-paren">)</span><a class="headerlink" href="#c.LOG_ERROR" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c macro"> |
| <dt id="c.LOG_CRITICAL"> |
| <span class="target" id="full_2include_2log_2log_8h_1a88da2c2eb4834a29f31ea4d091637a4b"></span><code class="sig-name descname"><span class="pre">LOG_CRITICAL</span></code><span class="sig-paren">(</span><em><span class="pre">__l</span></em>, <em><span class="pre">__mod</span></em>, <em><span class="pre">__msg</span></em>, <span class="pre">...</span><span class="sig-paren">)</span><a class="headerlink" href="#c.LOG_CRITICAL" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c macro"> |
| <dt id="c.LOG_SYSLEVEL"> |
| <span class="target" id="full_2include_2log_2log_8h_1a7524a7cda5647ca238aa96b6c3dcdaae"></span><code class="sig-name descname"><span class="pre">LOG_SYSLEVEL</span></code><a class="headerlink" href="#c.LOG_SYSLEVEL" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c macro"> |
| <dt id="c.LOGS_NMGR_OP_READ"> |
| <span class="target" id="full_2include_2log_2log_8h_1a3e1c5b14afb7273f5bc2220c04429c83"></span><code class="sig-name descname"><span class="pre">LOGS_NMGR_OP_READ</span></code><a class="headerlink" href="#c.LOGS_NMGR_OP_READ" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c macro"> |
| <dt id="c.LOGS_NMGR_OP_CLEAR"> |
| <span class="target" id="full_2include_2log_2log_8h_1a4e02db03ceae1638b3c3d45abf4947fe"></span><code class="sig-name descname"><span class="pre">LOGS_NMGR_OP_CLEAR</span></code><a class="headerlink" href="#c.LOGS_NMGR_OP_CLEAR" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c macro"> |
| <dt id="c.LOGS_NMGR_OP_APPEND"> |
| <span class="target" id="full_2include_2log_2log_8h_1a0859c74d268d74bd9ee5a1b60332e8bd"></span><code class="sig-name descname"><span class="pre">LOGS_NMGR_OP_APPEND</span></code><a class="headerlink" href="#c.LOGS_NMGR_OP_APPEND" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c macro"> |
| <dt id="c.LOGS_NMGR_OP_MODULE_LIST"> |
| <span class="target" id="full_2include_2log_2log_8h_1a6f2f5ff44d2061b36688e485db1d6712"></span><code class="sig-name descname"><span class="pre">LOGS_NMGR_OP_MODULE_LIST</span></code><a class="headerlink" href="#c.LOGS_NMGR_OP_MODULE_LIST" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c macro"> |
| <dt id="c.LOGS_NMGR_OP_LEVEL_LIST"> |
| <span class="target" id="full_2include_2log_2log_8h_1af7dd8ff96bfe7000ee775c0f7be8857f"></span><code class="sig-name descname"><span class="pre">LOGS_NMGR_OP_LEVEL_LIST</span></code><a class="headerlink" href="#c.LOGS_NMGR_OP_LEVEL_LIST" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c macro"> |
| <dt id="c.LOGS_NMGR_OP_LOGS_LIST"> |
| <span class="target" id="full_2include_2log_2log_8h_1acbf29a668618b91fb503fdce4eca4701"></span><code class="sig-name descname"><span class="pre">LOGS_NMGR_OP_LOGS_LIST</span></code><a class="headerlink" href="#c.LOGS_NMGR_OP_LOGS_LIST" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c macro"> |
| <dt id="c.LOG_PRINTF_MAX_ENTRY_LEN"> |
| <span class="target" id="full_2include_2log_2log_8h_1a4b313dbbbadbfbb6a3ffa3db4ae99b31"></span><code class="sig-name descname"><span class="pre">LOG_PRINTF_MAX_ENTRY_LEN</span></code><a class="headerlink" href="#c.LOG_PRINTF_MAX_ENTRY_LEN" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| </div> |
| <div class="breathe-sectiondef docutils container"> |
| <p class="breathe-sectiondef-title rubric" id="breathe-section-title-typedefs">Typedefs</p> |
| <dl class="c type"> |
| <dt id="c.log_walk_func_t"> |
| <span class="target" id="full_2include_2log_2log_8h_1a5bccb60687b65c54978eae492c7515a3"></span><em class="property"><span class="pre">typedef</span> </em><span class="pre">int</span> <span class="pre">(</span><span class="pre">*</span><code class="sig-name descname"><span class="pre">log_walk_func_t</span></code><span class="pre">)</span><span class="sig-paren">(</span><em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="#c.log" title="log"><span class="pre">log</span></a><span class="pre">*</span>, <em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="#c.log_offset" title="log_offset"><span class="pre">log_offset</span></a> <span class="pre">*</span><span class="pre">log_offset</span>, <span class="pre">void</span> <span class="pre">*</span><span class="pre">offset</span>, <span class="pre">uint16_t</span> <span class="pre">len</span><span class="sig-paren">)</span><a class="headerlink" href="#c.log_walk_func_t" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c type"> |
| <dt id="c.lh_read_func_t"> |
| <span class="target" id="full_2include_2log_2log_8h_1a2f127d1e7301e582997bf9b90c807d12"></span><em class="property"><span class="pre">typedef</span> </em><span class="pre">int</span> <span class="pre">(</span><span class="pre">*</span><code class="sig-name descname"><span class="pre">lh_read_func_t</span></code><span class="pre">)</span><span class="sig-paren">(</span><em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="#c.log" title="log"><span class="pre">log</span></a><span class="pre">*</span>, <span class="pre">void</span> <span class="pre">*</span><span class="pre">dptr</span>, <span class="pre">void</span> <span class="pre">*</span><span class="pre">buf</span>, <span class="pre">uint16_t</span> <span class="pre">offset</span>, <span class="pre">uint16_t</span> <span class="pre">len</span><span class="sig-paren">)</span><a class="headerlink" href="#c.lh_read_func_t" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c type"> |
| <dt id="c.lh_read_mbuf_func_t"> |
| <span class="target" id="full_2include_2log_2log_8h_1aa66ddf4192295db784c806d09e5554a9"></span><em class="property"><span class="pre">typedef</span> </em><span class="pre">int</span> <span class="pre">(</span><span class="pre">*</span><code class="sig-name descname"><span class="pre">lh_read_mbuf_func_t</span></code><span class="pre">)</span><span class="sig-paren">(</span><em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="#c.log" title="log"><span class="pre">log</span></a><span class="pre">*</span>, <span class="pre">void</span> <span class="pre">*</span><span class="pre">dptr</span>, <em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="../../core_os/mbuf/mbuf.html#c.os_mbuf" title="os_mbuf"><span class="pre">os_mbuf</span></a> <span class="pre">*</span><span class="pre">om</span>, <span class="pre">uint16_t</span> <span class="pre">offset</span>, <span class="pre">uint16_t</span> <span class="pre">len</span><span class="sig-paren">)</span><a class="headerlink" href="#c.lh_read_mbuf_func_t" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c type"> |
| <dt id="c.lh_append_func_t"> |
| <span class="target" id="full_2include_2log_2log_8h_1a19ee35f77c0d909b360a7704b672f9d1"></span><em class="property"><span class="pre">typedef</span> </em><span class="pre">int</span> <span class="pre">(</span><span class="pre">*</span><code class="sig-name descname"><span class="pre">lh_append_func_t</span></code><span class="pre">)</span><span class="sig-paren">(</span><em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="#c.log" title="log"><span class="pre">log</span></a><span class="pre">*</span>, <span class="pre">void</span> <span class="pre">*</span><span class="pre">buf</span>, <span class="pre">int</span> <span class="pre">len</span><span class="sig-paren">)</span><a class="headerlink" href="#c.lh_append_func_t" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c type"> |
| <dt id="c.lh_append_mbuf_func_t"> |
| <span class="target" id="full_2include_2log_2log_8h_1a8f68677678144da0641491a8179c7460"></span><em class="property"><span class="pre">typedef</span> </em><span class="pre">int</span> <span class="pre">(</span><span class="pre">*</span><code class="sig-name descname"><span class="pre">lh_append_mbuf_func_t</span></code><span class="pre">)</span><span class="sig-paren">(</span><em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="#c.log" title="log"><span class="pre">log</span></a><span class="pre">*</span>, <em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="../../core_os/mbuf/mbuf.html#c.os_mbuf" title="os_mbuf"><span class="pre">os_mbuf</span></a> <span class="pre">*</span><span class="pre">om</span><span class="sig-paren">)</span><a class="headerlink" href="#c.lh_append_mbuf_func_t" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c type"> |
| <dt id="c.lh_walk_func_t"> |
| <span class="target" id="full_2include_2log_2log_8h_1a26ea94f956c083f449619bcaea428eaa"></span><em class="property"><span class="pre">typedef</span> </em><span class="pre">int</span> <span class="pre">(</span><span class="pre">*</span><code class="sig-name descname"><span class="pre">lh_walk_func_t</span></code><span class="pre">)</span><span class="sig-paren">(</span><em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="#c.log" title="log"><span class="pre">log</span></a><span class="pre">*</span>, <a class="reference internal" href="#c.log_walk_func_t" title="log_walk_func_t"><span class="pre">log_walk_func_t</span></a> <span class="pre">walk_func</span>, <em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="#c.log_offset" title="log_offset"><span class="pre">log_offset</span></a> <span class="pre">*</span><span class="pre">log_offset</span><span class="sig-paren">)</span><a class="headerlink" href="#c.lh_walk_func_t" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c type"> |
| <dt id="c.lh_flush_func_t"> |
| <span class="target" id="full_2include_2log_2log_8h_1aa56cbe1332f7ea07753f928f094310e6"></span><em class="property"><span class="pre">typedef</span> </em><span class="pre">int</span> <span class="pre">(</span><span class="pre">*</span><code class="sig-name descname"><span class="pre">lh_flush_func_t</span></code><span class="pre">)</span><span class="sig-paren">(</span><em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="#c.log" title="log"><span class="pre">log</span></a><span class="pre">*</span><span class="sig-paren">)</span><a class="headerlink" href="#c.lh_flush_func_t" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c type"> |
| <dt id="c.lh_registered_func_t"> |
| <span class="target" id="full_2include_2log_2log_8h_1a0849c4cff323e8747e981672b0ae7142"></span><em class="property"><span class="pre">typedef</span> </em><span class="pre">int</span> <span class="pre">(</span><span class="pre">*</span><code class="sig-name descname"><span class="pre">lh_registered_func_t</span></code><span class="pre">)</span><span class="sig-paren">(</span><em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="#c.log" title="log"><span class="pre">log</span></a><span class="pre">*</span><span class="sig-paren">)</span><a class="headerlink" href="#c.lh_registered_func_t" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| </div> |
| <div class="breathe-sectiondef docutils container"> |
| <p class="breathe-sectiondef-title rubric" id="breathe-section-title-functions">Functions</p> |
| <dl class="c function"> |
| <dt id="c.log_init"> |
| <span class="target" id="full_2include_2log_2log_8h_1a2508fad025e49f9746b6c178dce6917e"></span><span class="pre">void</span> <code class="sig-name descname"><span class="pre">log_init</span></code><span class="sig-paren">(</span><span class="pre">void</span><span class="sig-paren">)</span><a class="headerlink" href="#c.log_init" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c function"> |
| <dt id="c.log_list_get_next"> |
| <span class="target" id="full_2include_2log_2log_8h_1ae9320c228e4d555a4778c12dcfeb8bb2"></span><em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="#c.log" title="log"><span class="pre">log</span></a> <span class="pre">*</span><code class="sig-name descname"><span class="pre">log_list_get_next</span></code><span class="sig-paren">(</span><em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="#c.log" title="log"><span class="pre">log</span></a><span class="pre">*</span><span class="sig-paren">)</span><a class="headerlink" href="#c.log_list_get_next" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c function"> |
| <dt id="c.log_module_register"> |
| <span class="target" id="full_2include_2log_2log_8h_1a67f9a573fee1ceff149242ac1da19c6f"></span><span class="pre">uint8_t</span> <code class="sig-name descname"><span class="pre">log_module_register</span></code><span class="sig-paren">(</span><span class="pre">uint8_t</span> <em><span class="pre">id</span></em>, <em class="property"><span class="pre">const</span></em> <span class="pre">char</span> <span class="pre">*</span><em><span class="pre">name</span></em><span class="sig-paren">)</span><a class="headerlink" href="#c.log_module_register" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c function"> |
| <dt id="c.log_module_get_name"> |
| <span class="target" id="full_2include_2log_2log_8h_1a52cf7fd7192c68c1b91e7f84b1338dd1"></span><em class="property"><span class="pre">const</span></em> <span class="pre">char</span> <span class="pre">*</span><code class="sig-name descname"><span class="pre">log_module_get_name</span></code><span class="sig-paren">(</span><span class="pre">uint8_t</span> <em><span class="pre">id</span></em><span class="sig-paren">)</span><a class="headerlink" href="#c.log_module_get_name" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c function"> |
| <dt id="c.log_register"> |
| <span class="target" id="full_2include_2log_2log_8h_1aed7fcd6a580a9f1fd21bf4d5f0ff1b93"></span><span class="pre">int</span> <code class="sig-name descname"><span class="pre">log_register</span></code><span class="sig-paren">(</span><span class="pre">char</span> <span class="pre">*</span><em><span class="pre">name</span></em>, <em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="#c.log_register" title="log"><span class="pre">log</span></a> <span class="pre">*</span><em><span class="pre">log</span></em>, <em class="property"><span class="pre">const</span></em> <em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="#c.log_handler" title="log_handler"><span class="pre">log_handler</span></a><span class="pre">*</span>, <span class="pre">void</span> <span class="pre">*</span><em><span class="pre">arg</span></em>, <span class="pre">uint8_t</span> <em><span class="pre">level</span></em><span class="sig-paren">)</span><a class="headerlink" href="#c.log_register" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c function"> |
| <dt id="c.log_append_typed"> |
| <span class="target" id="full_2include_2log_2log_8h_1a7f999d5e80a0a42a54e444f56e959be2"></span><span class="pre">int</span> <code class="sig-name descname"><span class="pre">log_append_typed</span></code><span class="sig-paren">(</span><em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="#c.log" title="log"><span class="pre">log</span></a><span class="pre">*</span>, <span class="pre">uint8_t</span>, <span class="pre">uint8_t</span>, <span class="pre">uint8_t</span>, <span class="pre">void</span><span class="pre">*</span>, <span class="pre">uint16_t</span><span class="sig-paren">)</span><a class="headerlink" href="#c.log_append_typed" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c function"> |
| <dt id="c.log_append_mbuf_typed"> |
| <span class="target" id="full_2include_2log_2log_8h_1abac1fb8ae408af95ef9484d3cb8859c3"></span><span class="pre">int</span> <code class="sig-name descname"><span class="pre">log_append_mbuf_typed</span></code><span class="sig-paren">(</span><em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="#c.log" title="log"><span class="pre">log</span></a><span class="pre">*</span>, <span class="pre">uint8_t</span>, <span class="pre">uint8_t</span>, <span class="pre">uint8_t</span>, <em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="../../core_os/mbuf/mbuf.html#c.os_mbuf" title="os_mbuf"><span class="pre">os_mbuf</span></a><span class="pre">*</span><span class="sig-paren">)</span><a class="headerlink" href="#c.log_append_mbuf_typed" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c function"> |
| <dt id="c.log_append"> |
| <span class="target" id="full_2include_2log_2log_8h_1a10393bc5be19f2b3d125f819577e3971"></span><em class="property"><span class="pre">static</span></em> <em class="property"><span class="pre">inline</span></em> <span class="pre">int</span> <code class="sig-name descname"><span class="pre">log_append</span></code><span class="sig-paren">(</span><em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="#c.log_append" title="log"><span class="pre">log</span></a> <span class="pre">*</span><em><span class="pre">log</span></em>, <span class="pre">uint8_t</span> <em><span class="pre">module</span></em>, <span class="pre">uint8_t</span> <em><span class="pre">level</span></em>, <span class="pre">void</span> <span class="pre">*</span><em><span class="pre">data</span></em>, <span class="pre">uint16_t</span> <em><span class="pre">len</span></em><span class="sig-paren">)</span><a class="headerlink" href="#c.log_append" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c function"> |
| <dt id="c.log_append_mbuf"> |
| <span class="target" id="full_2include_2log_2log_8h_1ac6e318ca6cce6eff5ebbd6e83d06b077"></span><em class="property"><span class="pre">static</span></em> <em class="property"><span class="pre">inline</span></em> <span class="pre">int</span> <code class="sig-name descname"><span class="pre">log_append_mbuf</span></code><span class="sig-paren">(</span><em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="#c.log_append_mbuf" title="log"><span class="pre">log</span></a> <span class="pre">*</span><em><span class="pre">log</span></em>, <span class="pre">uint8_t</span> <em><span class="pre">module</span></em>, <span class="pre">uint8_t</span> <em><span class="pre">level</span></em>, <em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="../../core_os/mbuf/mbuf.html#c.os_mbuf" title="os_mbuf"><span class="pre">os_mbuf</span></a> <span class="pre">*</span><em><span class="pre">om</span></em><span class="sig-paren">)</span><a class="headerlink" href="#c.log_append_mbuf" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c function"> |
| <dt id="c.log_printf"> |
| <span class="target" id="full_2include_2log_2log_8h_1a38fec70c55638a04ee8e350dc7c68e23"></span><span class="pre">void</span> <code class="sig-name descname"><span class="pre">log_printf</span></code><span class="sig-paren">(</span><em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="#c.log_printf" title="log"><span class="pre">log</span></a> <span class="pre">*</span><em><span class="pre">log</span></em>, <span class="pre">uint16_t</span>, <span class="pre">uint16_t</span>, <span class="pre">char</span><span class="pre">*</span>, <span class="pre">...</span><span class="sig-paren">)</span><a class="headerlink" href="#c.log_printf" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c function"> |
| <dt id="c.log_read"> |
| <span class="target" id="full_2include_2log_2log_8h_1a5c69ec30ce725dcde16eda0cbff96068"></span><span class="pre">int</span> <code class="sig-name descname"><span class="pre">log_read</span></code><span class="sig-paren">(</span><em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="#c.log_read" title="log"><span class="pre">log</span></a> <span class="pre">*</span><em><span class="pre">log</span></em>, <span class="pre">void</span> <span class="pre">*</span><em><span class="pre">dptr</span></em>, <span class="pre">void</span> <span class="pre">*</span><em><span class="pre">buf</span></em>, <span class="pre">uint16_t</span> <em><span class="pre">off</span></em>, <span class="pre">uint16_t</span> <em><span class="pre">len</span></em><span class="sig-paren">)</span><a class="headerlink" href="#c.log_read" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c function"> |
| <dt id="c.log_read_mbuf"> |
| <span class="target" id="full_2include_2log_2log_8h_1ad37e8ee63ba278e3c2116329ade0ecdb"></span><span class="pre">int</span> <code class="sig-name descname"><span class="pre">log_read_mbuf</span></code><span class="sig-paren">(</span><em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="#c.log_read_mbuf" title="log"><span class="pre">log</span></a> <span class="pre">*</span><em><span class="pre">log</span></em>, <span class="pre">void</span> <span class="pre">*</span><em><span class="pre">dptr</span></em>, <em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="../../core_os/mbuf/mbuf.html#c.os_mbuf" title="os_mbuf"><span class="pre">os_mbuf</span></a> <span class="pre">*</span><em><span class="pre">om</span></em>, <span class="pre">uint16_t</span> <em><span class="pre">off</span></em>, <span class="pre">uint16_t</span> <em><span class="pre">len</span></em><span class="sig-paren">)</span><a class="headerlink" href="#c.log_read_mbuf" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c function"> |
| <dt id="c.log_walk"> |
| <span class="target" id="full_2include_2log_2log_8h_1a4f49fb75a702ea9b33d716fef212cd79"></span><span class="pre">int</span> <code class="sig-name descname"><span class="pre">log_walk</span></code><span class="sig-paren">(</span><em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="#c.log_walk" title="log"><span class="pre">log</span></a> <span class="pre">*</span><em><span class="pre">log</span></em>, <a class="reference internal" href="#c.log_walk_func_t" title="log_walk_func_t"><span class="pre">log_walk_func_t</span></a> <em><span class="pre">walk_func</span></em>, <em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="#c.log_walk" title="log_offset"><span class="pre">log_offset</span></a> <span class="pre">*</span><em><span class="pre">log_offset</span></em><span class="sig-paren">)</span><a class="headerlink" href="#c.log_walk" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c function"> |
| <dt id="c.log_flush"> |
| <span class="target" id="full_2include_2log_2log_8h_1accfb1bc70fe3fa3abe408c712674ec30"></span><span class="pre">int</span> <code class="sig-name descname"><span class="pre">log_flush</span></code><span class="sig-paren">(</span><em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="#c.log_flush" title="log"><span class="pre">log</span></a> <span class="pre">*</span><em><span class="pre">log</span></em><span class="sig-paren">)</span><a class="headerlink" href="#c.log_flush" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c function"> |
| <dt id="c.log_nmgr_register_group"> |
| <span class="target" id="full_2include_2log_2log_8h_1ac8206ec2c106a9ce9424a39b386d12c4"></span><span class="pre">int</span> <code class="sig-name descname"><span class="pre">log_nmgr_register_group</span></code><span class="sig-paren">(</span><span class="pre">void</span><span class="sig-paren">)</span><a class="headerlink" href="#c.log_nmgr_register_group" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| </div> |
| <div class="breathe-sectiondef docutils container"> |
| <p class="breathe-sectiondef-title rubric" id="breathe-section-title-variables">Variables</p> |
| <dl class="c var"> |
| <dt id="c.g_log_info"> |
| <span class="target" id="full_2include_2log_2log_8h_1a8eb5241069c3cad92f04bd3f9d13faf0"></span><em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="#c.log_info" title="log_info"><span class="pre">log_info</span></a> <code class="sig-name descname"><span class="pre">g_log_info</span></code><a class="headerlink" href="#c.g_log_info" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c var"> |
| <dt id="c.log_console_handler"> |
| <span class="target" id="full_2include_2log_2log_8h_1a881289dbd9a79c6225239e2b72cec4a8"></span><em class="property"><span class="pre">const</span></em> <em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="#c.log_handler" title="log_handler"><span class="pre">log_handler</span></a> <code class="sig-name descname"><span class="pre">log_console_handler</span></code><a class="headerlink" href="#c.log_console_handler" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c var"> |
| <dt id="c.log_cbmem_handler"> |
| <span class="target" id="full_2include_2log_2log_8h_1a649ef9595a9a890e38154e54bf243c71"></span><em class="property"><span class="pre">const</span></em> <em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="#c.log_handler" title="log_handler"><span class="pre">log_handler</span></a> <code class="sig-name descname"><span class="pre">log_cbmem_handler</span></code><a class="headerlink" href="#c.log_cbmem_handler" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c var"> |
| <dt id="c.log_fcb_handler"> |
| <span class="target" id="full_2include_2log_2log_8h_1ae85ac1f42826982b5f0198fd19fc6b46"></span><em class="property"><span class="pre">const</span></em> <em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="#c.log_handler" title="log_handler"><span class="pre">log_handler</span></a> <code class="sig-name descname"><span class="pre">log_fcb_handler</span></code><a class="headerlink" href="#c.log_fcb_handler" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c var"> |
| <dt id="c.log_fcb_slot1_handler"> |
| <span class="target" id="full_2include_2log_2log_8h_1a73ba118a04cf811f881d627996af953b"></span><em class="property"><span class="pre">const</span></em> <em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="#c.log_handler" title="log_handler"><span class="pre">log_handler</span></a> <code class="sig-name descname"><span class="pre">log_fcb_slot1_handler</span></code><a class="headerlink" href="#c.log_fcb_slot1_handler" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| </div> |
| <dl class="c struct"> |
| <dt id="c.log_info"> |
| <span class="target" id="structlog__info"></span><em class="property"><span class="pre">struct</span> </em><code class="sig-name descname"><span class="pre">log_info</span></code><a class="headerlink" href="#c.log_info" title="Permalink to this definition">¶</a><br /></dt> |
| <dd><em>#include <log.h></em><div class="breathe-sectiondef docutils container"> |
| <p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-members">Public Members</p> |
| <dl class="c var"> |
| <dt id="c.log_info.li_next_index"> |
| <span class="target" id="structlog__info_1a08c226eb088ebc9134ccf1add52e76a9"></span><span class="pre">uint32_t</span> <code class="sig-name descname"><span class="pre">li_next_index</span></code><a class="headerlink" href="#c.log_info.li_next_index" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c var"> |
| <dt id="c.log_info.li_version"> |
| <span class="target" id="structlog__info_1a2e622a5f1246ec10adfdc4cd012b9451"></span><span class="pre">uint8_t</span> <code class="sig-name descname"><span class="pre">li_version</span></code><a class="headerlink" href="#c.log_info.li_version" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| </div> |
| </dd></dl> |
| |
| <dl class="c struct"> |
| <dt id="c.log_offset"> |
| <span class="target" id="structlog__offset"></span><em class="property"><span class="pre">struct</span> </em><code class="sig-name descname"><span class="pre">log_offset</span></code><a class="headerlink" href="#c.log_offset" title="Permalink to this definition">¶</a><br /></dt> |
| <dd><em>#include <log.h></em><p>Used for walks and reads; indicates part of log to access. </p> |
| <div class="breathe-sectiondef docutils container"> |
| <p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-members">Public Members</p> |
| <dl class="c var"> |
| <dt id="c.log_offset.lo_ts"> |
| <span class="target" id="structlog__offset_1abf717145b82aec45493449d150b39cf0"></span><span class="pre">int64_t</span> <code class="sig-name descname"><span class="pre">lo_ts</span></code><a class="headerlink" href="#c.log_offset.lo_ts" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c var"> |
| <dt id="c.log_offset.lo_index"> |
| <span class="target" id="structlog__offset_1a4c8cec5bf5b2ab35d0bce92e09dd5aa5"></span><span class="pre">uint32_t</span> <code class="sig-name descname"><span class="pre">lo_index</span></code><a class="headerlink" href="#c.log_offset.lo_index" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c var"> |
| <dt id="c.log_offset.lo_data_len"> |
| <span class="target" id="structlog__offset_1a158a12500f1125b1e7575fa9856d9894"></span><span class="pre">uint32_t</span> <code class="sig-name descname"><span class="pre">lo_data_len</span></code><a class="headerlink" href="#c.log_offset.lo_data_len" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c var"> |
| <dt id="c.log_offset.lo_arg"> |
| <span class="target" id="structlog__offset_1aba3119779984fc002c80bbbe797ba90f"></span><span class="pre">void</span> <span class="pre">*</span><code class="sig-name descname"><span class="pre">lo_arg</span></code><a class="headerlink" href="#c.log_offset.lo_arg" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| </div> |
| </dd></dl> |
| |
| <dl class="c struct"> |
| <dt id="c.log_handler"> |
| <span class="target" id="structlog__handler"></span><em class="property"><span class="pre">struct</span> </em><code class="sig-name descname"><span class="pre">log_handler</span></code><a class="headerlink" href="#c.log_handler" title="Permalink to this definition">¶</a><br /></dt> |
| <dd><em>#include <log.h></em><div class="breathe-sectiondef docutils container"> |
| <p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-members">Public Members</p> |
| <dl class="c var"> |
| <dt id="c.log_handler.log_type"> |
| <span class="target" id="structlog__handler_1ad65f3c291144c9563af323a410aa6a6d"></span><span class="pre">int</span> <code class="sig-name descname"><span class="pre">log_type</span></code><a class="headerlink" href="#c.log_handler.log_type" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c var"> |
| <dt id="c.log_handler.log_read"> |
| <span class="target" id="structlog__handler_1ae6b70c2bf453741b0fe1d41d2e866112"></span><a class="reference internal" href="#c.lh_read_func_t" title="lh_read_func_t"><span class="pre">lh_read_func_t</span></a> <code class="sig-name descname"><span class="pre">log_read</span></code><a class="headerlink" href="#c.log_handler.log_read" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c var"> |
| <dt id="c.log_handler.log_read_mbuf"> |
| <span class="target" id="structlog__handler_1aa2f5adc40b8c4203dcec0990780b915c"></span><a class="reference internal" href="#c.lh_read_mbuf_func_t" title="lh_read_mbuf_func_t"><span class="pre">lh_read_mbuf_func_t</span></a> <code class="sig-name descname"><span class="pre">log_read_mbuf</span></code><a class="headerlink" href="#c.log_handler.log_read_mbuf" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c var"> |
| <dt id="c.log_handler.log_append"> |
| <span class="target" id="structlog__handler_1a662b191acd442da61df5ddd97c252229"></span><a class="reference internal" href="#c.lh_append_func_t" title="lh_append_func_t"><span class="pre">lh_append_func_t</span></a> <code class="sig-name descname"><span class="pre">log_append</span></code><a class="headerlink" href="#c.log_handler.log_append" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c var"> |
| <dt id="c.log_handler.log_append_mbuf"> |
| <span class="target" id="structlog__handler_1a0a9057b12824b959f6aabaf432f85d0a"></span><a class="reference internal" href="#c.lh_append_mbuf_func_t" title="lh_append_mbuf_func_t"><span class="pre">lh_append_mbuf_func_t</span></a> <code class="sig-name descname"><span class="pre">log_append_mbuf</span></code><a class="headerlink" href="#c.log_handler.log_append_mbuf" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c var"> |
| <dt id="c.log_handler.log_walk"> |
| <span class="target" id="structlog__handler_1afaa4f87e34e4ebca54b8fc4f5ec9ca95"></span><a class="reference internal" href="#c.lh_walk_func_t" title="lh_walk_func_t"><span class="pre">lh_walk_func_t</span></a> <code class="sig-name descname"><span class="pre">log_walk</span></code><a class="headerlink" href="#c.log_handler.log_walk" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c var"> |
| <dt id="c.log_handler.log_flush"> |
| <span class="target" id="structlog__handler_1a9088643ee5fa07573e9636b6f920085a"></span><a class="reference internal" href="#c.lh_flush_func_t" title="lh_flush_func_t"><span class="pre">lh_flush_func_t</span></a> <code class="sig-name descname"><span class="pre">log_flush</span></code><a class="headerlink" href="#c.log_handler.log_flush" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c var"> |
| <dt id="c.log_handler.log_registered"> |
| <span class="target" id="structlog__handler_1a1e9bff519eaea7728d99be4d62b5da69"></span><a class="reference internal" href="#c.lh_registered_func_t" title="lh_registered_func_t"><span class="pre">lh_registered_func_t</span></a> <code class="sig-name descname"><span class="pre">log_registered</span></code><a class="headerlink" href="#c.log_handler.log_registered" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| </div> |
| </dd></dl> |
| |
| <dl class="c struct"> |
| <dt id="c.log"> |
| <span class="target" id="structlog"></span><em class="property"><span class="pre">struct</span> </em><code class="sig-name descname"><span class="pre">log</span></code><a class="headerlink" href="#c.log" title="Permalink to this definition">¶</a><br /></dt> |
| <dd><em>#include <log.h></em><div class="breathe-sectiondef docutils container"> |
| <p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-functions">Public Functions</p> |
| <dl class="c function"> |
| <dt> |
| <span class="target" id="structlog_1a6d07240ed4fa7ac4a0076a255dc61ff5"></span><code class="sig-name descname"><span class="pre">STAILQ_ENTRY</span> <span class="pre">(log)</span> <span class="pre">l_next</span></code></dt> |
| <dd></dd></dl> |
| |
| </div> |
| <div class="breathe-sectiondef docutils container"> |
| <p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-members">Public Members</p> |
| <dl class="c var"> |
| <dt id="c.log.l_name"> |
| <span class="target" id="structlog_1a51e12071c1c1b1e792701a60f5bc0299"></span><span class="pre">char</span> <span class="pre">*</span><code class="sig-name descname"><span class="pre">l_name</span></code><a class="headerlink" href="#c.log.l_name" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c var"> |
| <dt id="c.log.l_log"> |
| <span class="target" id="structlog_1ac65e462e8879b0aa7afacdc652bb1836"></span><em class="property"><span class="pre">const</span></em> <em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="#c.log_handler" title="log_handler"><span class="pre">log_handler</span></a> <span class="pre">*</span><code class="sig-name descname"><span class="pre">l_log</span></code><a class="headerlink" href="#c.log.l_log" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c var"> |
| <dt id="c.log.l_arg"> |
| <span class="target" id="structlog_1a789d9412642d0df93d82cb935ff0e9b1"></span><span class="pre">void</span> <span class="pre">*</span><code class="sig-name descname"><span class="pre">l_arg</span></code><a class="headerlink" href="#c.log.l_arg" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c var"> |
| <dt id="c.log.l_level"> |
| <span class="target" id="structlog_1a79e2701bcf76fccfcf8df56835d8cd2b"></span><span class="pre">uint8_t</span> <code class="sig-name descname"><span class="pre">l_level</span></code><a class="headerlink" href="#c.log.l_level" title="Permalink to this definition">¶</a><br /></dt> |
| <dd></dd></dl> |
| |
| </div> |
| </dd></dl> |
| |
| </div> |
| </div> |
| </div> |
| |
| |
| </div> |
| </div> |
| |
| <div class="rst-footer-buttons row" role="navigation" aria-label="footer navigation"> |
| |
| <a href="../../../network/index.html" class="btn btn-neutral float-right" title="BLE User Guide" accesskey="n">Next: BLE User Guide <span class="fa fa-arrow-circle-right"></span></a> |
| |
| |
| <a href="../stats/stats.html" class="btn btn-neutral" title="Statistics Module" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous: Statistics Module</a> |
| |
| </div> |
| |
| </div> |
| </div> |
| </div> |
| <!-- ENDS CONTENT SECTION --> |
| </div> |
| <!-- ENDS .content --> |
| </div> |
| </div> |
| <footer> |
| <div class="container"> |
| <div class="row"> |
| <div class="col-xs-12"> |
| |
| <p class="copyright">Apache Mynewt is available under Apache License, version 2.0.</p> |
| |
| </div> |
| <div class="col-xs-12"> |
| <div class="logos"> |
| <img src="../../../_static/img/asf_logo_wide_small.png" alt="Apache" title="Apache"> |
| <small class="footnote"> |
| Apache Mynewt, Mynewt, Apache, the Apache feather logo, and the Apache Mynewt project logo are either |
| registered trademarks or trademarks of the Apache Software Foundation in the United States and other countries. |
| </small> |
| <a href=""> |
| <img src="../../../_static/img/add_to_slack.png" alt="Slack Icon" title="Join our Slack Community" /> |
| </a> |
| </div> |
| </div> |
| </div> |
| </div> |
| </footer> |
| </div> |
| <!-- ENDS #wrapper --> |
| |
| |
| |
| <script type="text/javascript"> |
| var DOCUMENTATION_OPTIONS = { |
| URL_ROOT:'../../../', |
| VERSION:'latest', |
| COLLAPSE_INDEX:false, |
| FILE_SUFFIX:'.html', |
| HAS_SOURCE: true, |
| SOURCELINK_SUFFIX: '.txt', |
| LINK_SUFFIX: '.html' |
| }; |
| </script> |
| <script type="text/javascript" src="../../../_static/jquery.js"></script> |
| <script type="text/javascript" src="../../../_static/underscore.js"></script> |
| <script type="text/javascript" src="../../../_static/doctools.js"></script> |
| <script type="text/javascript" src="../../../_static/js/bootstrap-3.0.3.min.js"></script> |
| <script type="text/javascript" src="../../../_static/js/affix.js"></script> |
| <script type="text/javascript" src="../../../_static/js/main.js"></script> |
| |
| |
| |
| </body> |
| </html> |