libcamera  v0.4.0
Supporting cameras in Linux since 2019
Protected Member Functions | List of all members
libcamera::Loggable Class Referenceabstract

Base class to support log message extensions. More...

Inheritance diagram for libcamera::Loggable:
Inheritance graph
[legend]

Protected Member Functions

virtual std::string logPrefix () const =0
 Retrieve a string to be prefixed to the log message. More...
 
LogMessage _log (const LogCategory *category, LogSeverity severity, const char *fileName=__builtin_FILE(), unsigned int line=__builtin_LINE()) const
 Create a temporary LogMessage object to log a message. More...
 

Detailed Description

Base class to support log message extensions.

The Loggable class allows classes to extend log messages without any change to the way the LOG() macro is invoked. By inheriting from Loggable and implementing the logPrefix() virtual function, a class can specify extra information to be automatically added to messages logged from class member function.

Member Function Documentation

◆ _log()

LogMessage libcamera::Loggable::_log ( const LogCategory category,
LogSeverity  severity,
const char *  fileName = __builtin_FILE(),
unsigned int  line = __builtin_LINE() 
) const
protected

Create a temporary LogMessage object to log a message.

Parameters
[in]categoryThe log message category
[in]severityThe log message severity
[in]fileNameThe file name where the message is logged from
[in]lineThe line number where the message is logged from

This function is used as a backend by the LOG() macro to create a log message for locations inheriting from the Loggable class.

Returns
A log message

◆ logPrefix()

libcamera::Loggable::logPrefix ( ) const
protectedpure virtual

Retrieve a string to be prefixed to the log message.

This function allows classes inheriting from the Loggable class to extend the logger with an object-specific prefix output right before the log message contents.

Returns
A string to be prefixed to the log message

Implemented in libcamera::V4L2VideoDevice, libcamera::V4L2Subdevice, libcamera::ipa::ipu3::IPAIPU3, libcamera::MediaDevice, libcamera::IPAModule, and libcamera::CameraLens.


The documentation for this class was generated from the following files: