[bitbake-devel] [docs] [PATCH 15/15] bitbake-user-manual: Add documentation for BB_LOGCONFIG

Rich Persaud rp at stacktrust.org
Thu Mar 12 23:50:49 UTC 2020


On Mar 9, 2020, at 12:34, Joshua Watt <jpewhacker at gmail.com> wrote:
> 
> Adds documentation describing how to use the BB_LOGCONFIG variable to
> enable custom logging.
> 
> Signed-off-by: Joshua Watt <JPEWhacker at gmail.com>
> ---
> .../bitbake-user-manual-execution.xml         | 97 +++++++++++++++++++
> .../bitbake-user-manual-ref-variables.xml     | 11 +++
> 2 files changed, 108 insertions(+)
> 
> diff --git a/bitbake/doc/bitbake-user-manual/bitbake-user-manual-execution.xml b/bitbake/doc/bitbake-user-manual/bitbake-user-manual-execution.xml
> index 8f606676b4..3b31f748cc 100644
> --- a/bitbake/doc/bitbake-user-manual/bitbake-user-manual-execution.xml
> +++ b/bitbake/doc/bitbake-user-manual/bitbake-user-manual-execution.xml
> @@ -929,4 +929,101 @@
>             section.
>         </para>
>     </section>
> +
> +    <section id="logging">
> +        <title>Logging</title>
> +        <para>
> +            In addition to the standard command line option to control how
> +            verbose builds are when execute, bitbake also supports user defined
> +            configuration of the
> +            <ulink url='https://docs.python.org/3/library/logging.html'>Python logging</ulink>
> +            facilities through the
> +            <link linkend="var-bb-BB_LOGCONFIG"><filename>BB_LOGCONFIG</filename></link>
> +            variable. This variable defines a json or yaml
> +            <ulink url='https://docs.python.org/3/library/logging.config.html'>logging configuration</ulink>
> +            that will be intelligently merged into the default configuration.
> +            The logging configuration is merged using the following rules:
> +            <itemizedlist>
> +                <listitem><para>
> +                    The user defined configuration will completely replace the default
> +                    configuration if top level key
> +                    <filename>bitbake_merge</filename> is set to the value
> +                    <filename>False</filename>. In this case, all other rules
> +                    are ignored.
> +                </para></listitem>
> +                <listitem><para>
> +                    The user configuration must have a top level
> +                    <filename>version</filename> which must match the value of
> +                    the default configuration.
> +                </para></listitem>
> +                <listitem><para>
> +                    Any keys defined in the <filename>handlers</filename>,
> +                    <filename>formatters</filename>, or <filename>filters</filename>,
> +                    will be merged into the same section in the default
> +                    configuration, with the user specified keys taking
> +                    replacing a default one if there is a conflict. In
> +                    practice, this means that if both the default configuration
> +                    and user configuration specify a handler named
> +                    <filename>myhandler</filename>, the user defined one will
> +                    replace the default. To prevent the user from inadvertently
> +                    replacing a default handler, formatter, or filter, all of
> +                    the default ones are named with a prefix of
> +                    "<filename>BitBake.</filename>"
> +                </para></listitem>
> +                <listitem><para>
> +                    If a logger is defined by the user with the key
> +                    <filename>bitbake_merge</filename> set to
> +                    <filename>False</filename>, that logger will be completely
> +                    replaced by user configuration. In this case, no other
> +                    rules will apply to that logger.
> +                </listitem></para>
> +                <listitem><para>
> +                    All user defined <filename>filter</filename> and
> +                    <filename>handlers</filename> properties for a given logger
> +                    will be merged with corresponding properties from the
> +                    default logger. For example, if the user configuration adds
> +                    a filter called <filename>myFilter</filename> to the
> +                    <filename>BitBake.SigGen</filename>, and the default
> +                    configuration adds a filter called
> +                    <filename>BitBake.defaultFilter</filename>, both filters
> +                    will be applied to the logger
> +                </listitem></para>
> +            </itemizedlist>
> +        </para>
> +
> +        <para>
> +            As an example, consider the following user logging configuration
> +            file which logs all Hash Equivalence related messages of VERBOSE or
> +            higher to a file called <filename>hashequiv.log</filename>
> +            <literallayout class='monospaced'>
> +    {
> +        "version": 1,
> +        "handlers": {
> +            "autobuilderlog": {
> +                "class": "logging.FileHandler",
> +                "formatter": "logfileFormatter",
> +                "level": "DEBUG",
> +                "filename": "hashequiv.log",
> +                "mode": "w"
> +            }
> +        },
> +        "formatters": {
> +                "logfileFormatter": {
> +                    "format": "%(name)s: %(levelname)s: %(message)s"

What's the syntax for including a timestamp in the log message?  Or is that implicit?

Rich


More information about the bitbake-devel mailing list