Set the log level for each log category from the environment variable
LIBCAMERA_LOG_LEVELS.
The variable contains a comma-separated list of category:level pairs,
and category names can include wildcards.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Log categories are used to group log messages by topic. Introduce
support for categories by making the LOG() macro variadic. Support for
configuring log level per category will be introduced in a subsequent
commit.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Commit 99a3e7bcfb ("libcamera: log: Add a LogFatal log level")
expanded the text representation of the log levels to support the FATAL
string, but left the default unknown match at four characters.
This code should never expect to be executed, but for completeness match
the string lengths by adding an extra character to the result.
Fixes: 99a3e7bcfb ("libcamera: log: Add a LogFatal log level")
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Many of the message logged by the library will be debug messages, we
thus need a debug log level.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Fix Doxygen build warnings by adding the missing documentation for the
LogMessage class.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Now that the documentation can be compiled, Doxygen throws a few
warnings due to incorrect enum field naming. Fix it.
The \file block needs to be named after the header file in order for
Doxygen to document any global function, variable, typedef or enum
defined in the header (as documented in the Doxygen manual under the
\file command). We thus need to use log.h as the file name. No \file
block is needed for the .cpp file, as we don't want to generate
documentation for internal private globals.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
The logger is based on the ostream API, allowing code to log messages in
a native way. It automatically logs the time stamp, severity level, file
name and line number.
Many important features are missing, such as logging to file, logging
classes, and log filtering based on the severity level, file name and
class.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Acked-by: Kieran Bingham <kieran.bingham@ideasonboard.com>