Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents
maxLevel2

Info

This page is under development

Introduction

RDK logger is a general purpose logging mechanism which is used for logging in RDK-B. Internally this uses log4c for formatting and supporting multiple log levels for different modules. The log level for each component is read from a configuration file debug.ini (rdkb_debug.ini) during component initialisation. Logger is implemented as a shared library and components need to link this library in order to  include logging functionality.

RDK logger is linked to RDK-B modules to enable component wise logging. When the unit boots-up, each RDK-B component will be initialised which in turn will initialise logger and start logging into the corresponding log file depending on the log level set for the component.

Note: The RDK data model naming convention prefix was changed in March 2020 to “X_RDK_”. We request you use this new prefix going forward.

Architecture

draw.io Diagram
diagramNameRDK-B_Logger_Archi.drawio
size850
revision1
Image Removed

  1. All logs from modules (CcspTraceError, CcspTraceInfo, etc..) are routed to RDK logger library. RDK logger logs these into log files based on module wise LogLevels & LoggerEnable options.  RDK  logger uses log4c library internally to achieve the functionality.

  2. CCSPLogAgent:

...

          Below mentioned are the supported LogLevels:

Log Level Index

Log Level

0

RDK_LOG_FATAL

1

RDK_LOG_ERROR

2

RDK_LOG_WARN

3

RDK_LOG_NOTICE

4

RDK_LOG_INFO

5

RDK_LOG_DEBUG

6

RDK_LOG_TRACE1

7

RDK_LOG_TRACE2

8

RDK_LOG_TRACE3

9

RDK_LOG_TRACE4

10

RDK_LOG_TRACE5

11

RDK_LOG_TRACE6

12

RDK_LOG_TRACE7

13

RDK_LOG_TRACE8

14

RDK_LOG_TRACE9

If LogLevel is set to 3, all logs related to 0 to 3 levels are routed to logger which means RDK_LOG_FATAL, RDK_LOG_ERROR, RDK_LOG_WARN and RDK_LOG_NOTICE prints are routed to logger, other prints not routed to logger.

...

Log file name will be of the  format : <modulename>log.txt.0<0,1>

Log file for a particular module can be easily identified from the name of the log file. Example: TR69log.txt.0

...

Steps to add rdklogger to a new component:

Step 1:

Need to add LoggerEnable and LogLevel parameters in “LogAgent.xml” file for new component.

Code Block
X_RDKCENTRAL-COM_New_LoggerEnable

...


X_RDKCENTRAL-COM_New_LogLevel


Step 2:

Need to add the new parameters in  “system_defaults_arm”  file for persistent storage.           

Code Block
$ X_RDKCENTRAL-COM_New_LogLevel=4

...


$ X_RDKCENTRAL-COM_New_LoggerEnable=1

Code functionality for Loglevel & LoggerEnable parameters set/get in “cosa_apis_logagentplugin.c” file

Initialise rdklogger by calling  rdk_logger_init (/fss/gw/lib/debug.ini)  in the new component


Step 3:

Add new component entry in “rdkb_debug.ini” file

Code Block
LOG.RDK.New = ALL FATAL ERROR WARNING NOTICE INFO DEBUG TRACE


Step 4:

Add the below configuration in “rdkb_log4src” file for new component

...

For Doxygen documentation on the RDK Logger please refer: Doxygen RDK Logger