zephyr/samples/subsys/logging/logger
Andy Ross 32bb2395c2 timeout: Fix up API usage
Kernel timeouts have always been a 32 bit integer despite the
existence of generation macros, and existing code has been
inconsistent about using them.  Upcoming commits are going to make the
timeout arguments opaque, so fix things up to be rigorously correct.
Changes include:

+ Adding a K_TIMEOUT_EQ() macro for code that needs to compare timeout
  values for equality (e.g. with K_FOREVER or K_NO_WAIT).

+ Adding a k_msleep() synonym for k_sleep() which can continue to take
  integral arguments as k_sleep() moves away to timeout arguments.

+ Pervasively using the K_MSEC(), K_SECONDS(), et. al. macros to
  generate timeout arguments.

+ Removing the usage of K_NO_WAIT as the final argument to
  K_THREAD_DEFINE().  This is just a count of milliseconds and we need
  to use a zero.

This patch include no logic changes and should not affect generated
code at all.

Signed-off-by: Andy Ross <andrew.j.ross@intel.com>
2020-03-31 19:40:47 -04:00
..
src timeout: Fix up API usage 2020-03-31 19:40:47 -04:00
CMakeLists.txt cmake: use find_package to locate Zephyr 2020-03-27 16:23:46 +01:00
Kconfig kconfig: Clean up header comments and make them consistent 2019-11-04 17:31:27 -05:00
prj.conf tests: Dont run coverage for select test cases. 2019-01-16 06:12:33 -05:00
README.rst doc: add how to exit from QEMU in samples 2019-09-02 12:06:08 -04:00
sample.yaml tests: fix test identifiers 2019-12-09 15:53:44 -05:00

.. _logger_sample:

Logging
###########

Overview
********
A simple application that demonstrates use of logging subsystem. It demonstrates
main features: severity levels, timestamping, module level filtering and
instance level filtering. It also showcases logging capabilities in terms of
performance.

Building and Running
********************

This project outputs multiple log message to the console.  It can be built and
executed on QEMU as follows:

.. zephyr-app-commands::
   :zephyr-app: samples/subsys/logging/logger
   :host-os: unix
   :board: qemu_x86
   :goals: run
   :compact:


Sample Output
=============

.. code-block:: console

        Module logging showcase.
        [00:00:00.106,051] <inf> sample_module: log in test_module 11
        [00:00:00.106,054] <inf> sample_module: Inline function.
        Disabling logging in the sample_module module
        Function called again but with logging disabled.
        Instance level logging showcase.
        [00:00:00.106,200] <inf> sample_instance.inst1: Inline call.
        [00:00:00.106,204] <inf> sample_instance.inst1: counter_value: 0
        [00:00:00.106,209] <wrn> sample_instance.inst1: Example of hexdump:
        01 02 03 04             |....
        [00:00:00.106,214] <inf> sample_instance.inst2: Inline call.
        [00:00:00.106,218] <inf> sample_instance.inst2: counter_value: 0
        [00:00:00.106,223] <wrn> sample_instance.inst2: Example of hexdump:
        01 02 03 04             |....
        Changing filter to warning on sample_instance.inst1 instance.
        [00:00:00.106,297] <wrn> sample_instance.inst1: Example of hexdump:
        01 02 03 04             |....
        [00:00:00.106,302] <inf> sample_instance.inst2: Inline call.
        [00:00:00.106,307] <inf> sample_instance.inst2: counter_value: 1
        [00:00:00.106,311] <wrn> sample_instance.inst2: Example of hexdump:
        01 02 03 04             |....
        Disabling logging on both instances.
        Function call on both instances with logging disabled.
        String logging showcase.
        [00:00:01.122,316] <inf> main: Logging transient string:transient_string
        Severity levels showcase.
        [00:00:01.122,348] <err> main: Error message example.
        [00:00:01.122,352] <wrn> main: Warning message example.
        [00:00:01.122,355] <inf> main: Info message example.
        Logging performance showcase.
        [00:00:02.151,602] <inf> main: performance test - log message 0
        Estimated logging capabilities: 42000000 messages/second
        Logs from external logging system showcase.
        [00:00:03.165,977] <err> ext_log_system: critical level log
        [00:00:03.165,991] <err> ext_log_system: error level log, 1 arguments: 1
        [00:00:03.166,006] <wrn> ext_log_system: warning level log, 2 arguments: 12
        [00:00:03.166,025] <inf> ext_log_system: notice level log, 3 arguments: 105
        [00:00:03.166,044] <inf> ext_log_system: info level log, 4 arguments : 1 24

Exit QEMU by pressing :kbd:`CTRL+A` :kbd:`x`.