le_log.h File Reference

Go to the source code of this file.

Macros

#define LE_LOG_LEVEL_STATIC_FILTER   LE_LOG_DEBUG
 
#define _LE_LOG_MSG(level, formatString, ...)
 
#define LE_DEBUG(formatString, ...)   _LE_LOG_MSG(LE_LOG_DEBUG, formatString, ##__VA_ARGS__)
 Debug message. More...
 
#define LE_DUMP(dataPtr, dataLength)
 
#define LE_LOG_DUMP(level, dataPtr, dataLength)   _le_LogData(level, dataPtr, dataLength, STRINGIZE(LE_FILENAME), _LE_LOG_FUNCTION_NAME, __LINE__)
 
#define LE_INFO(formatString, ...)   _LE_LOG_MSG(LE_LOG_INFO, formatString, ##__VA_ARGS__)
 Informational message. Normally expected. More...
 
#define LE_WARN(formatString, ...)   _LE_LOG_MSG(LE_LOG_WARN, formatString, ##__VA_ARGS__)
 Warning. Possibly indicates a problem. Should be addressed. More...
 
#define LE_ERROR(formatString, ...)   _LE_LOG_MSG(LE_LOG_ERR, formatString, ##__VA_ARGS__)
 
#define LE_CRIT(formatString, ...)   _LE_LOG_MSG(LE_LOG_CRIT, formatString, ##__VA_ARGS__)
 
#define LE_EMERG(formatString, ...)   _LE_LOG_MSG(LE_LOG_EMERG, formatString, ##__VA_ARGS__)
 Emergency. A fatal error has occurred. A process is being terminated. More...
 
#define LE_IS_TRACE_ENABLED(traceRef)   (le_log_IsTraceEnabled(traceRef))
 
#define LE_TRACE(traceRef, string, ...)
 
#define le_log_GetTraceRef(keywordPtr)   _le_log_GetTraceRef(LE_LOG_SESSION, (keywordPtr))
 
#define le_log_IsTraceEnabled(traceRef)   (*((bool*)(traceRef)))
 
#define le_log_SetFilterLevel(level)   _le_log_SetFilterLevel(LE_LOG_SESSION, (level))
 
#define le_log_GetFilterLevel()   ((LE_LOG_LEVEL_FILTER_PTR != NULL)?(*LE_LOG_LEVEL_FILTER_PTR):(LE_LOG_INFO))
 
#define le_log_EnableTrace(traceRef)   ((void)(*((bool*)(traceRef)) = true))
 
#define le_log_DisableTrace(traceRef)   ((void)(*((bool*)(traceRef)) = false))
 
#define LE_DEBUG_IF(condition, formatString, ...)   if (condition) { LE_DEBUG(formatString, ##__VA_ARGS__); }
 
#define LE_INFO_IF(condition, formatString, ...)   if (condition) { LE_INFO(formatString, ##__VA_ARGS__); }
 
#define LE_WARN_IF(condition, formatString, ...)   if (condition) { LE_WARN(formatString, ##__VA_ARGS__); }
 
#define LE_ERROR_IF(condition, formatString, ...)   if (condition) { LE_ERROR(formatString, ##__VA_ARGS__); }
 
#define LE_CRIT_IF(condition, formatString, ...)   if (condition) { LE_CRIT(formatString, ##__VA_ARGS__); }
 
#define LE_EMERG_IF(condition, formatString, ...)   if (condition) { LE_EMERG(formatString, ##__VA_ARGS__); }
 
#define LE_FATAL(formatString, ...)   { LE_EMERG(formatString, ##__VA_ARGS__); exit(EXIT_FAILURE); }
 
#define LE_FATAL_IF(condition, formatString, ...)   if (condition) { LE_FATAL(formatString, ##__VA_ARGS__) }
 
#define LE_ASSERT(condition)
 
#define LE_ASSERT_OK(condition)
 
#define LE_RESULT_TXT(v)   _le_log_GetResultCodeString(v)
 

Enumerations

enum  le_log_Level_t {
  LE_LOG_DEBUG, LE_LOG_INFO, LE_LOG_WARN, LE_LOG_ERR,
  LE_LOG_CRIT, LE_LOG_EMERG
}
 

Functions

const char * _le_log_GetResultCodeString (le_result_t resultCode)
 Function that does the real work of translating result codes. See LE_RESULT_TXT. More...
 

Detailed Description

Legato Logging API include file.

Macro Definition Documentation

◆ _LE_LOG_MSG

#define _LE_LOG_MSG (   level,
  formatString,
  ... 
)
Value:
do { \
if ((level >= LE_LOG_LEVEL_STATIC_FILTER) && \
((LE_LOG_LEVEL_FILTER_PTR == NULL) || (level >= *LE_LOG_LEVEL_FILTER_PTR))) \
_le_log_Send(level, NULL, LE_LOG_SESSION, __FILE__, _LE_LOG_FUNCTION_NAME, __LINE__, \
formatString, ##__VA_ARGS__); \
} while(0)
#define LE_LOG_LEVEL_STATIC_FILTER
Definition: le_log.h:406

Internal macro to filter out messages that do not meet the current filtering level.

◆ LE_ASSERT

#define LE_ASSERT (   condition)
Value:
if (!(condition)) \
{ \
LE_EMERG("Assert Failed: '%s'", #condition); \
LE_BACKTRACE("Assertion Call Stack"); \
exit(EXIT_FAILURE); \
}

This macro does nothing if the condition is true, otherwise it logs the condition expression as a message at EMERGENCY level and then kills the calling process.

◆ LE_ASSERT_OK

#define LE_ASSERT_OK (   condition)
Value:
if ((condition) != LE_OK) \
{ \
LE_EMERG("Assert Failed: '%s' is not LE_OK (0)", #condition); \
LE_BACKTRACE("Assertion Call Stack"); \
exit(EXIT_FAILURE); \
}
Successful.
Definition: le_basics.h:37

This macro does nothing if the condition is LE_OK (0), otherwise it logs that the expression did not evaluate to LE_OK (0) in a message at EMERGENCY level and then kills the calling process.

◆ LE_CRIT

#define LE_CRIT (   formatString,
  ... 
)    _LE_LOG_MSG(LE_LOG_CRIT, formatString, ##__VA_ARGS__)

Critical error. Fault that almost certainly has or will result in a system failure.

◆ LE_CRIT_IF

#define LE_CRIT_IF (   condition,
  formatString,
  ... 
)    if (condition) { LE_CRIT(formatString, ##__VA_ARGS__); }

LE_CRIT if condition is met.

◆ LE_DEBUG

#define LE_DEBUG (   formatString,
  ... 
)    _LE_LOG_MSG(LE_LOG_DEBUG, formatString, ##__VA_ARGS__)

Debug message.

◆ LE_DEBUG_IF

#define LE_DEBUG_IF (   condition,
  formatString,
  ... 
)    if (condition) { LE_DEBUG(formatString, ##__VA_ARGS__); }

LE_DEBUG if condition is met.

◆ LE_DUMP

#define LE_DUMP (   dataPtr,
  dataLength 
)
Value:
_le_LogData(LE_LOG_DEBUG, dataPtr, dataLength, STRINGIZE(LE_FILENAME), _LE_LOG_FUNCTION_NAME, \
__LINE__)
#define STRINGIZE(x)
Definition: le_basics.h:207
Debug message.
Definition: le_log.h:376

Dump a buffer of data as hexadecimal to the log at debug level.

Parameters
dataPtrBinary data to dump.
dataLengthLength og the buffer.

◆ LE_EMERG

#define LE_EMERG (   formatString,
  ... 
)    _LE_LOG_MSG(LE_LOG_EMERG, formatString, ##__VA_ARGS__)

Emergency. A fatal error has occurred. A process is being terminated.

◆ LE_EMERG_IF

#define LE_EMERG_IF (   condition,
  formatString,
  ... 
)    if (condition) { LE_EMERG(formatString, ##__VA_ARGS__); }

LE_EMERG if condition is met.

◆ LE_ERROR

#define LE_ERROR (   formatString,
  ... 
)    _LE_LOG_MSG(LE_LOG_ERR, formatString, ##__VA_ARGS__)

Error. Definitely indicates a fault that needs to be addressed. Possibly resulted in a system failure.

◆ LE_ERROR_IF

#define LE_ERROR_IF (   condition,
  formatString,
  ... 
)    if (condition) { LE_ERROR(formatString, ##__VA_ARGS__); }

LE_ERROR if condition is met.

◆ LE_FATAL

#define LE_FATAL (   formatString,
  ... 
)    { LE_EMERG(formatString, ##__VA_ARGS__); exit(EXIT_FAILURE); }

Log fatal errors by killing the calling process after logging the message at EMERGENCY level. This macro never returns.

Accepts printf-style arguments, consisting of a format string followed by zero or more parameters to be printed (depending on the contents of the format string).

◆ LE_FATAL_IF

#define LE_FATAL_IF (   condition,
  formatString,
  ... 
)    if (condition) { LE_FATAL(formatString, ##__VA_ARGS__) }

This macro does nothing if the condition is false, otherwise it logs the message at EMERGENCY level and then kills the calling process.

Accepts printf-style arguments, consisting of a format string followed by zero or more parameters to be printed (depending on the contents of the format string).

◆ LE_INFO

#define LE_INFO (   formatString,
  ... 
)    _LE_LOG_MSG(LE_LOG_INFO, formatString, ##__VA_ARGS__)

Informational message. Normally expected.

◆ LE_INFO_IF

#define LE_INFO_IF (   condition,
  formatString,
  ... 
)    if (condition) { LE_INFO(formatString, ##__VA_ARGS__); }

LE_INFO if condition is met.

◆ LE_IS_TRACE_ENABLED

#define LE_IS_TRACE_ENABLED (   traceRef)    (le_log_IsTraceEnabled(traceRef))

Queries whether or not a trace keyword is enabled.

Returns
true if the keyword is enabled. false otherwise.

◆ le_log_DisableTrace

#define le_log_DisableTrace (   traceRef)    ((void)(*((bool*)(traceRef)) = false))

Disables a trace.

Note
Normally, this is not necessary, since traces can be enabled at runtime using the log control tool and can be persistently configured. See Log Controls.
Parameters
traceRef[IN] Trace reference obtained from le_log_GetTraceRef()

◆ LE_LOG_DUMP

#define LE_LOG_DUMP (   level,
  dataPtr,
  dataLength 
)    _le_LogData(level, dataPtr, dataLength, STRINGIZE(LE_FILENAME), _LE_LOG_FUNCTION_NAME, __LINE__)

Dump a buffer of data as hexadecimal to the log at the specified level.

Parameters
levelLog level.
dataPtrBinary data to dump.
dataLengthLength of the buffer.

◆ le_log_EnableTrace

#define le_log_EnableTrace (   traceRef)    ((void)(*((bool*)(traceRef)) = true))

Enables a trace.

Note
Normally, this is not necessary, since traces can be enabled at runtime using the log control tool and can be persistently configured. See Log Controls.
Parameters
traceRef[IN] Trace reference obtained from le_log_GetTraceRef()

◆ le_log_GetFilterLevel

#define le_log_GetFilterLevel ( )    ((LE_LOG_LEVEL_FILTER_PTR != NULL)?(*LE_LOG_LEVEL_FILTER_PTR):(LE_LOG_INFO))

Gets the log filter level for the calling component.

◆ le_log_GetTraceRef

#define le_log_GetTraceRef (   keywordPtr)    _le_log_GetTraceRef(LE_LOG_SESSION, (keywordPtr))

Gets a reference to a trace keyword's settings.

Parameters
keywordPtr[IN] Pointer to the keyword string.
Returns
Trace reference.

◆ le_log_IsTraceEnabled

#define le_log_IsTraceEnabled (   traceRef)    (*((bool*)(traceRef)))

Determines if a trace is currently enabled.

Parameters
traceRef[IN] Trace reference obtained from le_log_GetTraceRef()
Returns
true if enabled, false if not.

◆ LE_LOG_LEVEL_STATIC_FILTER

#define LE_LOG_LEVEL_STATIC_FILTER   LE_LOG_DEBUG

Compile-time filtering level.

Note
Logs below this filter level will be removed at compile-time and cannot be enabled at runtime.

◆ le_log_SetFilterLevel

#define le_log_SetFilterLevel (   level)    _le_log_SetFilterLevel(LE_LOG_SESSION, (level))

Sets the log filter level for the calling component.

Note
Normally not necessary as the log filter level can be controlled at runtime using the log control tool, and can be persistently configured. See Log Controls.
Parameters
level[IN] Log filter level to apply to the current log session.

◆ LE_RESULT_TXT

#define LE_RESULT_TXT (   v)    _le_log_GetResultCodeString(v)

Get a null-terminated, printable string representing an le_result_t value.

For example, LE_RESULT_TXT(LE_NOT_PERMITTED) would return a pointer to a string containing "LE_NOT_PERMITTED".

"(unknown)" will be returned if the value given is out of range.

Returns
Pointer to a string constant.

◆ LE_TRACE

#define LE_TRACE (   traceRef,
  string,
  ... 
)
Value:
if (le_log_IsTraceEnabled(traceRef)) \
{ \
_le_log_Send((le_log_Level_t)-1, \
traceRef, \
LE_LOG_SESSION, \
STRINGIZE(LE_FILENAME), \
_LE_LOG_FUNCTION_NAME, \
__LINE__, \
string, \
##__VA_ARGS__); \
}
#define STRINGIZE(x)
Definition: le_basics.h:207
le_log_Level_t
Definition: le_log.h:374
#define le_log_IsTraceEnabled(traceRef)
Definition: le_log.h:607

Logs the string if the keyword has been enabled by a runtime tool or configuration setting.

◆ LE_WARN

#define LE_WARN (   formatString,
  ... 
)    _LE_LOG_MSG(LE_LOG_WARN, formatString, ##__VA_ARGS__)

Warning. Possibly indicates a problem. Should be addressed.

◆ LE_WARN_IF

#define LE_WARN_IF (   condition,
  formatString,
  ... 
)    if (condition) { LE_WARN(formatString, ##__VA_ARGS__); }

LE_WARN if condition is met.

Enumeration Type Documentation

◆ le_log_Level_t

Local definitions that should not be used directly.

Enumerator
LE_LOG_DEBUG 

Debug message.

LE_LOG_INFO 

Informational message. Normally expected.

LE_LOG_WARN 

Warning. Possibly indicates a problem. Should be addressed.

LE_LOG_ERR 

Error. Definitely indicates a fault that needs to be addressed. Possibly resulted in a system failure.

LE_LOG_CRIT 

Critical error. Fault that almost certainly has or will result in a system failure.

LE_LOG_EMERG 

Emergency. A fatal error has occurred. A process is being terminated.

Function Documentation

◆ _le_log_GetResultCodeString()

const char* _le_log_GetResultCodeString ( le_result_t  resultCode)

Function that does the real work of translating result codes. See LE_RESULT_TXT.

Parameters
[in]resultCodeResult code value to be translated.