doc: enhance the global log level documentation

Message ID 20240626150926.1918948-1-david.marchand@redhat.com (mailing list archive)
State New
Delegated to: Thomas Monjalon
Headers
Series doc: enhance the global log level documentation |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/loongarch-compilation success Compilation OK
ci/loongarch-unit-testing success Unit Testing PASS
ci/Intel-compilation success Compilation OK
ci/intel-Testing success Testing PASS
ci/github-robot: build success github build: passed
ci/intel-Functional success Functional PASS
ci/iol-mellanox-Performance success Performance Testing PASS
ci/iol-marvell-Functional success Functional Testing PASS
ci/iol-broadcom-Performance success Performance Testing PASS
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-intel-Functional success Functional Testing PASS
ci/iol-broadcom-Functional success Functional Testing PASS
ci/iol-abi-testing success Testing PASS
ci/iol-unit-arm64-testing success Testing PASS
ci/iol-compile-amd64-testing success Testing PASS
ci/iol-compile-arm64-testing success Testing PASS
ci/iol-unit-amd64-testing success Testing PASS
ci/iol-sample-apps-testing success Testing PASS

Commit Message

David Marchand June 26, 2024, 3:09 p.m. UTC
  The current documentation is non intuitive in that the global log level
can be understood as being a single knob controlling all components
logs.
On the contrary, all the global log level is for is to reduce verbosity
globally.

Remove examples of setting --log-level=8|debug, which is a noop.

Cc: stable@dpdk.org

Signed-off-by: David Marchand <david.marchand@redhat.com>
---
 doc/guides/cryptodevs/octeontx.rst |  2 +-
 doc/guides/prog_guide/log_lib.rst  | 10 ++++++----
 2 files changed, 7 insertions(+), 5 deletions(-)
  

Comments

Ilya Maximets June 26, 2024, 5:10 p.m. UTC | #1
On 6/26/24 17:09, David Marchand wrote:
> The current documentation is non intuitive in that the global log level
> can be understood as being a single knob controlling all components
> logs.
> On the contrary, all the global log level is for is to reduce verbosity
> globally.
> 
> Remove examples of setting --log-level=8|debug, which is a noop.
> 
> Cc: stable@dpdk.org
> 
> Signed-off-by: David Marchand <david.marchand@redhat.com>
> ---
>  doc/guides/cryptodevs/octeontx.rst |  2 +-
>  doc/guides/prog_guide/log_lib.rst  | 10 ++++++----
>  2 files changed, 7 insertions(+), 5 deletions(-)

Thanks, David!  Though I still find this part of the documentation
extremely confusing.

> 
> diff --git a/doc/guides/cryptodevs/octeontx.rst b/doc/guides/cryptodevs/octeontx.rst
> index a39f3f3d02..97e13514f3 100644
> --- a/doc/guides/cryptodevs/octeontx.rst
> +++ b/doc/guides/cryptodevs/octeontx.rst
> @@ -114,7 +114,7 @@ OCTEON TX crypto PMD.
>  
>  .. code-block:: console
>  
> -        ./build/ipsec-secgw --log-level=8 -c 0xff -- -P -p 0x3 -u 0x2 --config
> +        ./build/ipsec-secgw -c 0xff -- -P -p 0x3 -u 0x2 --config
>          "(1,0,0),(0,0,0)" -f ep1.cfg
>  
>  Testing
> diff --git a/doc/guides/prog_guide/log_lib.rst b/doc/guides/prog_guide/log_lib.rst
> index ff9d1b54a2..965b7e9961 100644
> --- a/doc/guides/prog_guide/log_lib.rst
> +++ b/doc/guides/prog_guide/log_lib.rst
> @@ -32,18 +32,20 @@ or by the user passing the ``--log-level`` parameter to the EAL via the applicat
>  Setting Global Log Level
>  ~~~~~~~~~~~~~~~~~~~~~~~~
>  
> -To adjust the global log level for an application,
> -just pass a numeric level or a level name to the ``--log-level`` EAL parameter.
> +By default, the global log level is set to ``RTE_LOG_DEBUG``.

This reads as I'll see debug logs from every component unless
I turn them off.  Which is not true.  The main issue is that
this doc doesn't define what 'global log level' means.

> +
> +To reduce the verbosity of an application globally,
> +adjust the global log level by passing a numeric level or a level name to the ``--log-level`` EAL parameter.
>  For example::
>  
>  	/path/to/app --log-level=error
>  
> -	/path/to/app --log-level=debug
> -
>  	/path/to/app --log-level=5   # warning
>  
>  Within an application, the log level can be similarly set using the ``rte_log_set_global_level`` API.
>  
> +For setting per component log levels, see below.
> +
>  Setting Log Level for a Component
>  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>  

I'd suggest to remove the 'Setting Global Log Level' section entirely.
Rename the 'Setting Log Level for a Component' into 'Setting Log Levels'
and restructure it in a way:

To set the log level for a particular component, use:
   --log-level=component:level <...>
For example, to see warnings and higher errors from <...> use <...>.

To set the log level for multiple components with wildcard match, use:
   --log-level=my_compon*:level <...>

For example, to see warnings and higher errors from all PMDs use <...>.
To see all the messages including debug logs from all PMDs use <...>

To set the desired log level for everything at once, use:
   --log-level=*:level

Also, the following syntax can be used to *decrease* log level globally:
   --log-level=level  # works only for decreasing current verbosity

What do you think?

(Some wording may need changes obviously.  For example, the doc says
the more critical levels are 'above' because they have 'higher importance',
but numbers are going the opposite direction.  So words like 'reduce' or
'increase' are hard to interpret in this context.)

Best regards, Ilya Maximets.
  

Patch

diff --git a/doc/guides/cryptodevs/octeontx.rst b/doc/guides/cryptodevs/octeontx.rst
index a39f3f3d02..97e13514f3 100644
--- a/doc/guides/cryptodevs/octeontx.rst
+++ b/doc/guides/cryptodevs/octeontx.rst
@@ -114,7 +114,7 @@  OCTEON TX crypto PMD.
 
 .. code-block:: console
 
-        ./build/ipsec-secgw --log-level=8 -c 0xff -- -P -p 0x3 -u 0x2 --config
+        ./build/ipsec-secgw -c 0xff -- -P -p 0x3 -u 0x2 --config
         "(1,0,0),(0,0,0)" -f ep1.cfg
 
 Testing
diff --git a/doc/guides/prog_guide/log_lib.rst b/doc/guides/prog_guide/log_lib.rst
index ff9d1b54a2..965b7e9961 100644
--- a/doc/guides/prog_guide/log_lib.rst
+++ b/doc/guides/prog_guide/log_lib.rst
@@ -32,18 +32,20 @@  or by the user passing the ``--log-level`` parameter to the EAL via the applicat
 Setting Global Log Level
 ~~~~~~~~~~~~~~~~~~~~~~~~
 
-To adjust the global log level for an application,
-just pass a numeric level or a level name to the ``--log-level`` EAL parameter.
+By default, the global log level is set to ``RTE_LOG_DEBUG``.
+
+To reduce the verbosity of an application globally,
+adjust the global log level by passing a numeric level or a level name to the ``--log-level`` EAL parameter.
 For example::
 
 	/path/to/app --log-level=error
 
-	/path/to/app --log-level=debug
-
 	/path/to/app --log-level=5   # warning
 
 Within an application, the log level can be similarly set using the ``rte_log_set_global_level`` API.
 
+For setting per component log levels, see below.
+
 Setting Log Level for a Component
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~