<!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">
        
        
        <!-- This is broken by doc revisioning.
         -->
        <link rel="shortcut icon" href="../../../img/favicon.ico">

        <title>newtmgr log - Apache Mynewt</title>

        <link href="../../../css/bootstrap-3.0.3.min.css" rel="stylesheet">
        <link rel="stylesheet" href="../../../css/highlight.css">
        <link href="../../../css/base.css" rel="stylesheet">
        <link href="../../../css/custom.css" rel="stylesheet">
        <link href="../../../css/v2.css" rel="stylesheet">
        <link href="https://fonts.googleapis.com/css?family=Lato" rel="stylesheet">
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">

        <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
        <!--[if lt IE 9]>
            <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
            <script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
        <![endif]-->

        
            <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="newtmgr log">


        <div class="container">
    <div class="row v2-main-banner">
        <a class="logo-cell" href="/">
            <img class="logo" src="/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>

        






<nav id="navbar" class="navbar navbar-inverse affix-top" data-spy="affix" data-offset-top="150" 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 
  class=""
>
                    <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 
  class=""
>
                    <a href="/about/">About</a>
                </li>
                <li 
  class=""
>
                    <a href="/talks/">Talks</a>
                </li>
                <li 
  class="active"
>
                    <a href="/documentation/">Documentation</a>
                </li>
                <li 
  class=""
>
                    <a href="/download/">Download</a>
                </li>
                <li 
  class=""
>
                    <a href="/community/">Community</a>
                </li>
                <li 
  class=""
>
                    <a href="/events/">Events</a>
                </li>
            </ul>

        </div>
    </div>
</nav>

        

        <div class="container">
            
                <div class="row">
                    <div class="col-md-3 v2-sidebar sidebar-container"><div id="docSidebar" class="hidden-print" role="complementary">
    <div class="top">
        <div role="search">
            <form id="rtd-search-form" class="wy-form" action="../../../search.html" method="get">
                <div class="form-group">
                    <input type="text" name="q" class="form-control" placeholder="Search documentation" />
                </div>
            </form>
        </div>
    </div>
    <ul class="toc-nav">
      <li class="doc-version"><select class="form-control" onchange="if (this.value) window.location.href=this.value">
  <option value="/latest">
    Version: master
  </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/" >
    Version: 1.4.0
  </option>
  <option value="/v1_3_0/os/introduction" >
    Version: 1.3.0
  </option>
  <option value="/v1_2_0/os/introduction" selected="selected" >
    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></li>
      
        
      
        
      
        
      
        
      
        
      
        
      
        
      
        
      
        
          
  
  
    <li ><a href="../../../os/introduction/">Mynewt Documentation</a>
  
  
    <ul>
          
              
          
              
                
  
  
    <li ><a href="../../../os/get_started/get_started/">Basic Setup</a>
  
  
    </li>

              
          
              
                
  <li >
    <a href="../../../os/get_started/vocabulary/">Concepts</a>
  </li>

              
          
              
                
  
  
    <li ><a href="../../../os/tutorials/tutorials/">Tutorials</a>
  
  
    </li>

              
          
              
                
  
  
    <li ><a href="../../../os/os_user_guide/">OS User Guide</a>
  
  
    </li>

              
          
              
                
  
  
    <li><a href="
  ../../../network/ble/ble_intro/
">BLE User Guide</a>
  
  
    </li>

              
          
              
                
  
  
    <li ><a href="../../../newt/newt_intro/">Newt Tool Guide</a>
  
  
    </li>

              
          
              
                
  
  
    <li ><a href="../../overview/">Newt Manager Guide</a>
  
  
    <ul>
          
              
          
              
                
  
  
    <li><a href="
  ../newtmgr_config/
">Command Guide</a>
  
  
    <ul>
          
              
                
  <li >
    <a href="../newtmgr_config/">newtmgr config</a>
  </li>

              
          
              
                
  <li >
    <a href="../newtmgr_conn/">newtmgr conn</a>
  </li>

              
          
              
                
  <li >
    <a href="../newtmgr_crash/">newtmgr crash</a>
  </li>

              
          
              
                
  <li >
    <a href="../newtmgr_datetime/">newtmgr datetime</a>
  </li>

              
          
              
                
  <li >
    <a href="../newtmgr_echo/">newtmgr echo</a>
  </li>

              
          
              
                
  <li >
    <a href="../newtmgr_fs/">newtmgr fs</a>
  </li>

              
          
              
                
  <li >
    <a href="../newtmgr_image/">newtmgr image</a>
  </li>

              
          
              
                
  <li class="active">
    <a href="./">newtmgr log</a>
  </li>

              
          
              
                
  <li >
    <a href="../newtmgr_mpstats/">newtmgr mpstat</a>
  </li>

              
          
              
                
  <li >
    <a href="../newtmgr_reset/">newtmgr reset</a>
  </li>

              
          
              
                
  <li >
    <a href="../newtmgr_run/">newtmgr run</a>
  </li>

              
          
              
                
  <li >
    <a href="../newtmgr_stat/">newtmgr stat</a>
  </li>

              
          
              
                
  <li >
    <a href="../newtmgr_taskstats/">newtmgr taskstat</a>
  </li>

              
          
    </ul>
  
    </li>

              
          
              
                
  
  
    <li><a href="
  ../../install_mac/
">Install</a>
  
  
    </li>

              
          
    </ul>
  
    </li>

              
          
              
                
  <li >
    <a href="../../../known_issues/">Known Issues</a>
  </li>

              
          
    </ul>
  
    </li>

        
      
        
          
  
  
    <li><a href="
  ../../../newt/install/prev_releases/
">Appendix</a>
  
  
    </li>

        
      
    </ul>
</div></div>

                    <div class="col-md-9" role="main">
                        <div class="doc-header">
                            <div role="navigation" aria-label="breadcrumbs navigation">
  <ul class="wy-breadcrumbs">
    <li><a href="/documentation/">Docs</a></li>
    
    
        
          <li>&raquo; <a href="newtmgr/command_list/newtmgr_config/">Command Guide</a></li>
        
      
        
          <li>&raquo; <a href="newtmgr/overview/">Newt Manager Guide</a></li>
        
      
        
          <li>&raquo; <a href="os/introduction/">Mynewt Documentation</a></li>
        
      
      
        <li>&raquo; newtmgr log</li>
      
    
    
      <li class="wy-breadcrumbs-aside">
        
          <a href="https://github.com/apache/mynewt-site/blob/master/docs/newtmgr/command_list/newtmgr_logs.md"
            class="icon icon-github"> Edit on GitHub</a>
        
      </li>
    
  </ul>
</div>
                        </div>
                        
                          
                        
                          
                        
                          
                        
                          
                        
                          
                            <div class="alert alert-warning">
                                <p>
                                    Version 1.2.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>
                          
                        
                        
                            <h2 id="newtmgr-log"><font color="#F2853F" style="font-size:24pt">newtmgr log </font></h2>
<p>Manage logs on a device.</p>
<h4 id="usage">Usage:</h4>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>    newtmgr log [command] -c &lt;conn_profile&gt; [flags] 
</code></pre></div>

<h4 id="global-flags">Global Flags:</h4>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>  -c, --conn string       connection profile to use
  -h, --help              help for newtmgr
  -l, --loglevel string   log level to use (default &quot;info&quot;)
      --name string       name of target BLE device; overrides profile setting
  -t, --timeout float     timeout in seconds (partial seconds allowed) (default 10)
  -r, --tries int         total number of tries in case of timeout (default 1)
</code></pre></div>

<h4 id="description">Description</h4>
<p>The log command provides subcommands to manage logs on a device. Newtmgr uses the <code>conn_profile</code> connection profile to connect to the device.</p>
<table>
<thead>
<tr>
<th>Sub-command</th>
<th>Explanation</th>
</tr>
</thead>
<tbody>
<tr>
<td>clear</td>
<td>The newtmgr log clear command clears the logs on a device.</td>
</tr>
<tr>
<td>level_list</td>
<td>The newtmgr level_list command shows the log levels on a device.</td>
</tr>
<tr>
<td>list</td>
<td>The newtmgr log list command shows the log names on a device.</td>
</tr>
<tr>
<td>module_list</td>
<td>The newtmgr log module_list command shows the log module names on a device.</td>
</tr>
<tr>
<td>show</td>
<td>The newtmgr log show command displays logs on a device. The command format is: <br>newtmgr log show [log_name [min-index [min-timestamp]]] -c &lt;conn_profile&gt;<br><br>The following optional parameters can be used to filter the logs to display: <ul><li><strong>log_name</strong>: Name of log to display. If log_name is not specified, all logs are displayed.</li><li><strong>min-index</strong>: Minimum index of the log entries to display. This value is only valid when a log_name is specified. The value can be <code>last</code> or a number. If the value is <code>last</code>, only the last log entry is displayed. If the value is a number, log entries with an index equal to or higher than min-index are displayed.</li><li><strong>min-timestamp</strong>: Minimum timestamp of log entries to display. The value is only valid if min-index is specified and is not the value <code>last</code>. Only log entries with a timestamp equal to or later than min-timestamp are displayed. Log entries with a timestamp equal to min-timestamp are only displayed if the log entry index is equal to or higher than min-index.</li></ul></td>
</tr>
</tbody>
</table>
<h4 id="examples">Examples</h4>
<table>
<thead>
<tr>
<th>Sub-command</th>
<th>Usage</th>
<th>Explanation</th>
</tr>
</thead>
<tbody>
<tr>
<td>clear</td>
<td>newtmgr log clear<br>-c profile01</td>
<td>Clears the logs on a device. Newtmgr connects to the device over a connection specified in the <code>profile01</code> connection profile.</td>
</tr>
<tr>
<td>level_list</td>
<td>newtmgr log level_list <br>-c profile01</td>
<td>Shows the log levels on a device. Newtmgr connects to the device over a connection specified in the <code>profile01</code> connection profile.</td>
</tr>
<tr>
<td>list</td>
<td>newtmgr log list<br>-c profile01</td>
<td>Shows the log names on a device. Newtmgr connects to the device over a connection specified in the <code>profile01</code> connection profile.</td>
</tr>
<tr>
<td>module_list</td>
<td>newtmgr log module_list<br>-c profile01</td>
<td>Shows the log module names on a device. Newtmgr connects to the device over a connection specified in the <code>profile01</code> connection profile.</td>
</tr>
<tr>
<td>show</td>
<td>newtmgr log show -c profile01</td>
<td>Displays all logs on a device.  Newtmgr connects to the device over a connection specified in the <code>profile01</code> connection profile.</td>
</tr>
<tr>
<td>show</td>
<td>newtmgr log show reboot_log -c profile01</td>
<td>Displays all log entries for the reboot_log on a device.  Newtmgr connects to the device over a connection specified in the <code>profile01</code> connection profile.</td>
</tr>
<tr>
<td>show</td>
<td>newtmgr log show reboot_log last -c profile01</td>
<td>Displays the last entry from the reboot_log on a device.  Newtmgr connects to the device over a connection specified in the <code>profile01</code> connection profile.</td>
</tr>
<tr>
<td>show</td>
<td>newtmgr log show reboot_log 2 -c profile01</td>
<td>Displays the reboot_log log entries with an index 2 and higher on a device.  Newtmgr connects to the device over a connection specified in the <code>profile01</code> connection profile.</td>
</tr>
<tr>
<td>show</td>
<td>newtmgr log show reboot_log 5 123456 -c profile01</td>
<td>Displays the reboot_log log entries with a timestamp higher than 123456 and log entries with a timestamp equal to 123456 and an index equal to or higher than 5.  Newtmgr connects to the device over a connection specified in the <code>profile01</code> connection profile.</td>
</tr>
</tbody>
</table>
                        
                        <div class="row">
                            



<ul class="nav nav-pills" style="margin-bottom: 10px">
    <li>
    
    </li>
    <li class="pull-right">
    
    </li>
</ul>
                        </div>
                        <footer 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">
            <a href="https://www.apache.org/">
                <img src="/img/asf_logo_wide_small.png" alt="Apache" title="Apache">
            </a>
            <p>
                Copyright © 2015-2021 The Apache Software Foundation.<br>
                <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>
            </p>
            <a href="">
                <img src="https://www.countit.com/images/add_to_slack.png" alt="Slack Icon" title="Join our Slack Community" />
            </a>
        </div>
    </div>
    <a href="https://www.apache.org/licenses/">
        <button class="button-footer-asf">
            License
        </button>
    </a>
    <a href="https://www.apache.org/foundation/sponsorship.html">
        <button class="button-footer-asf">
            Sponsorship
        </button>
    </a>
    <a href="https://www.apache.org/foundation/thanks.html">
        <button class="button-footer-asf">
            Thanks
        </button>
    </a>
    <a href="https://www.apache.org/security/">
        <button class="button-footer-asf">
            Security
        </button>
    </a>
    <a href="https://apache.org/events/current-event">
        <button class="button-footer-asf">
            ASF Events
        </button>
    </a>
</footer>
                    </div>
                </div>
            
            
        </div>

        <script src="../../../js/jquery-1.10.2.min.js"></script>
        <script src="../../../js/bootstrap-3.0.3.min.js"></script>
        <script src="../../../js/highlight.pack.js"></script>
        <script src="../../../js/base.js"></script>
        <script src="../../../js/custom.js"></script>
            <script src="search/main.js"></script>

    </body>
</html>