Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
rte_log.h(3)			     DPDK			  rte_log.h(3)

NAME
       rte_log.h

SYNOPSIS
       #include	<assert.h>
       #include	<stdint.h>
       #include	<stdio.h>
       #include	<stdarg.h>
       #include	<stdbool.h>
       #include	<rte_common.h>
       #include	<rte_config.h>

   Macros
       #define RTE_LOGTYPE_EAL	 0
       #define RTE_LOGTYPE_USER1   24
       #define RTE_LOGTYPE_USER2   25
       #define RTE_LOGTYPE_USER3   26
       #define RTE_LOGTYPE_USER4   27
       #define RTE_LOGTYPE_USER5   28
       #define RTE_LOGTYPE_USER6   29
       #define RTE_LOGTYPE_USER7   30
       #define RTE_LOGTYPE_USER8   31
       #define RTE_LOGTYPE_FIRST_EXT_ID	  32
       #define RTE_LOG_EMERG   1U
       #define RTE_LOG_ALERT   2U
       #define RTE_LOG_CRIT   3U
       #define RTE_LOG_ERR   4U
       #define RTE_LOG_WARNING	 5U
       #define RTE_LOG_NOTICE	6U
       #define RTE_LOG_INFO   7U
       #define RTE_LOG_DEBUG   8U
       #define RTE_LOG_MAX   RTE_LOG_DEBUG
       #define RTE_LOG(l,  t, ...)
       #define RTE_LOG_DP(l,  t, ...)
       #define RTE_LOG_LINE(l,	t, ...)
       #define RTE_LOG_DP_LINE(l,  t, ...)
       #define RTE_LOG_LINE_PREFIX(l,  t,  prefix,  args, ...)
       #define RTE_LOG_DP_LINE_PREFIX(l,  t,  prefix,  args, ...)
       #define RTE_LOG_REGISTER(type,  name,  level)
	     RTE_LOG_REGISTER_IMPL(type, RTE_STR(name),	level)
       #define RTE_LOG_REGISTER_DEFAULT(type,  level)
	    RTE_LOG_REGISTER_IMPL(type,	RTE_STR(RTE_LOG_DEFAULT_LOGTYPE),
	   level)
       #define RTE_LOG_REGISTER_SUFFIX(type,  suffix,  level)

   Functions
       int rte_openlog_stream (FILE *f)
       FILE * rte_log_get_stream (void)
       void rte_log_set_global_level (uint32_t level)
       uint32_t	rte_log_get_global_level (void)
       int rte_log_get_level (uint32_t logtype)
       bool rte_log_can_log (uint32_t logtype, uint32_t	loglevel)
       int rte_log_set_level_pattern (const char *pattern, uint32_t level)
       int rte_log_set_level_regexp (const char	*regex,	uint32_t level)
       int rte_log_set_level (uint32_t logtype,	uint32_t level)
       int rte_log_cur_msg_loglevel (void)
       int rte_log_cur_msg_logtype (void)
       int rte_log_register (const char	*name)
       int rte_log_register_type_and_pick_level	(const char *name, uint32_t
	   level_def)
       void rte_log_list_types (FILE *out, const char *prefix)
       void rte_log_dump (FILE *f)
       int rte_log (uint32_t level, uint32_t logtype, const char *format,...)
	   __rte_cold __rte_format_printf(3
       int int rte_vlog	(uint32_t level, uint32_t logtype, const char *format,
	   va_list ap) __rte_format_printf(3

Detailed Description
       RTE Logs	API

       This file provides a log	API to RTE applications.

       Definition in file rte_log.h.

Macro Definition Documentation
   #define RTE_LOGTYPE_EAL   0
       Log related to eal.

       Definition at line 30 of	file rte_log.h.

   #define RTE_LOGTYPE_USER1   24
       User-defined log	type 1.

       Definition at line 53 of	file rte_log.h.

   #define RTE_LOGTYPE_USER2   25
       User-defined log	type 2.

       Definition at line 54 of	file rte_log.h.

   #define RTE_LOGTYPE_USER3   26
       User-defined log	type 3.

       Definition at line 55 of	file rte_log.h.

   #define RTE_LOGTYPE_USER4   27
       User-defined log	type 4.

       Definition at line 56 of	file rte_log.h.

   #define RTE_LOGTYPE_USER5   28
       User-defined log	type 5.

       Definition at line 57 of	file rte_log.h.

   #define RTE_LOGTYPE_USER6   29
       User-defined log	type 6.

       Definition at line 58 of	file rte_log.h.

   #define RTE_LOGTYPE_USER7   30
       User-defined log	type 7.

       Definition at line 59 of	file rte_log.h.

   #define RTE_LOGTYPE_USER8   31
       User-defined log	type 8.

       Definition at line 60 of	file rte_log.h.

   #define RTE_LOGTYPE_FIRST_EXT_ID   32
       First identifier	for extended logs

       Definition at line 63 of	file rte_log.h.

   #define RTE_LOG_EMERG   1U
       System is unusable.

       Definition at line 66 of	file rte_log.h.

   #define RTE_LOG_ALERT   2U
       Action must be taken immediately.

       Definition at line 67 of	file rte_log.h.

   #define RTE_LOG_CRIT	  3U
       Critical	conditions.

       Definition at line 68 of	file rte_log.h.

   #define RTE_LOG_ERR	 4U
       Error conditions.

       Definition at line 69 of	file rte_log.h.

   #define RTE_LOG_WARNING   5U
       Warning conditions.

       Definition at line 70 of	file rte_log.h.

   #define RTE_LOG_NOTICE   6U
       Normal but significant condition.

       Definition at line 71 of	file rte_log.h.

   #define RTE_LOG_INFO	  7U
       Informational.

       Definition at line 72 of	file rte_log.h.

   #define RTE_LOG_DEBUG   8U
       Debug-level messages.

       Definition at line 73 of	file rte_log.h.

   #define RTE_LOG_MAX	 RTE_LOG_DEBUG
       Most detailed log level.

       Definition at line 74 of	file rte_log.h.

   #define RTE_LOG(l, t,  ...)
       Value:.PP
	    rte_log(RTE_LOG_ ##	l,		   \
		RTE_LOGTYPE_ ##	t, # t ": " __VA_ARGS__)
       Generates a log message.

       The RTE_LOG() is	a helper that prefixes the string with the log level
       and type, and call rte_log().

       Parameters
	   l Log level.	A value	between	EMERG (1) and DEBUG (8). The short
	   name	is expanded by the macro, so it	cannot be an integer value.
	   t The log type, for example,	EAL. The short name is expanded	by the
	   macro, so it	cannot be an integer value.
	   ... The fmt string, as in printf(3),	followed by the	variable
	   arguments required by the format.

       Returns

	    0:	Success.

	    Negative on error.

       Definition at line 332 of file rte_log.h.

   #define RTE_LOG_DP(l, t,  ...)
       Value:.PP
	   (void)((RTE_LOG_ ## l <= RTE_LOG_DP_LEVEL) ?	       \
	    rte_log(RTE_LOG_ ##	l,		   \
		RTE_LOGTYPE_ ##	t, # t ": " __VA_ARGS__) : \
	    0)
       Generates a log message for data	path.

       Similar	to RTE_LOG(), except that it is	removed	at compilation time if
       the RTE_LOG_DP_LEVEL configuration option is lower than the  log	 level
       argument.

       Parameters
	   l  Log  level.  A  value between EMERG (1) and DEBUG	(8). The short
	   name	is expanded by the macro, so it	cannot be an integer value.
	   t The log type, for example,	EAL. The short name is expanded	by the
	   macro, so it	cannot be an integer value.
	   ... The fmt string, as  in  printf(3),  followed  by	 the  variable
	   arguments required by the format.

       Returns

	    0:	Success.

	    Negative on error.

       Definition at line 356 of file rte_log.h.

   #define RTE_LOG_LINE(l, t,  ...)
       Value:.PP
	   do {	\
	   RTE_LOG_CHECK_NO_NEWLINE(RTE_FMT_HEAD(__VA_ARGS__ ,)); \
	   RTE_LOG(l, t, RTE_FMT(RTE_FMT_HEAD(__VA_ARGS__ ,) "\n", \
	       RTE_FMT_TAIL(__VA_ARGS__	,))); \
       } while (0)
       Generates a log message with a single trailing newline.

       The  RTE_LOG_LINE()  is a helper	that expands logging of	a message with
       RTE_LOG() appending a single newline to the formatted message.

       Parameters
	   l Log level.	A value	between	EMERG (1) and  DEBUG  (8).  The	 short
	   name	is expanded by the macro, so it	cannot be an integer value.
	   t The log type, for example,	EAL. The short name is expanded	by the
	   macro, so it	cannot be an integer value.
	   ...	The  fmt  string,  as  in  printf(3), followed by the variable
	   arguments required by the format.

       Definition at line 386 of file rte_log.h.

   #define RTE_LOG_DP_LINE(l, t,  ...)
       Value:.PP
	   do {	\
	   RTE_LOG_CHECK_NO_NEWLINE(RTE_FMT_HEAD(__VA_ARGS__ ,)); \
	   RTE_LOG_DP(l, t, RTE_FMT(RTE_FMT_HEAD(__VA_ARGS__ ,)	"\n", \
	       RTE_FMT_TAIL(__VA_ARGS__	,))); \
       } while (0)
       Generates a log message for data	path with a single trailing newline.

       Similar to RTE_LOG_LINE(), except that it  is  removed  at  compilation
       time if the RTE_LOG_DP_LEVEL configuration option is lower than the log
       level argument.

       The  RTE_LOG_LINE()  is a helper	that expands logging of	a message with
       RTE_LOG_DP() appending a	single newline to the formatted	message.

       Parameters
	   l Log level.	A value	between	EMERG (1) and  DEBUG  (8).  The	 short
	   name	is expanded by the macro, so it	cannot be an integer value.
	   t The log type, for example,	EAL. The short name is expanded	by the
	   macro, so it	cannot be an integer value.
	   ...	The  fmt  string,  as  in  printf(3), followed by the variable
	   arguments required by the format.

       Definition at line 413 of file rte_log.h.

   #define RTE_LOG_LINE_PREFIX(l, t, prefix, args,  ...)
       Value:.PP
	   do {	\
	   RTE_LOG_CHECK_NO_NEWLINE(RTE_FMT_HEAD(prefix	__VA_ARGS__ ,)); \
	   RTE_LOG(l, t, RTE_FMT(prefix	RTE_FMT_HEAD(__VA_ARGS__ ,) "\n", \
	       args RTE_LOG_COMMA RTE_FMT_TAIL(__VA_ARGS__ ,))); \
       } while (0)
       Generates a log message with a supplied prefix  and  arguments  with  a
       single trailing newline.

       The RTE_LOG_LINE_PREFIX() is a helper that expands logging of a message
       with RTE_LOG() prepending the supplied prefix and arguments appending a
       single newline to the formatted message.

       Parameters
	   l  Log  level.  A  value between EMERG (1) and DEBUG	(8). The short
	   name	is expanded by the macro, so it	cannot be an integer value.
	   t The log type, for example,	EAL. The short name is expanded	by the
	   macro, so it	cannot be an integer value.
	   prefix The prefix format string.
	   args	The arguments for the prefix format string. If	args  contains
	   multiple arguments use RTE_LOG_COMMA	to defer expansion.
	   ...	The  fmt  string,  as  in  printf(3), followed by the variable
	   arguments required by the format.

       Definition at line 444 of file rte_log.h.

   #define RTE_LOG_DP_LINE_PREFIX(l, t,	prefix,	args,  ...)
       Value:.PP
	   do {	\
	   RTE_LOG_CHECK_NO_NEWLINE(RTE_FMT_HEAD(prefix	__VA_ARGS__ ,)); \
	   RTE_LOG_DP(l, t, RTE_FMT(prefix RTE_FMT_HEAD(__VA_ARGS__ ,) "\n", \
	       args RTE_LOG_COMMA RTE_FMT_TAIL(__VA_ARGS__ ,))); \
       } while (0)
       Generates a log message for the data path with a	 supplied  prefix  and
       arguments with a	single trailing	newline.

       The  RTE_LOG_DP_LINE_PREFIX()  is  a  helper  that expands logging of a
       message with RTE_LOG_DP() prepending the	supplied prefix	and  arguments
       appending a single newline to the formatted message.

       Parameters
	   l  Log  level.  A  value between EMERG (1) and DEBUG	(8). The short
	   name	is expanded by the macro, so it	cannot be an integer value.
	   t The log type, for example,	EAL. The short name is expanded	by the
	   macro, so it	cannot be an integer value.
	   prefix The prefix format string.
	   args	The arguments for the prefix format string. If	args  contains
	   multiple arguments use RTE_LOG_COMMA	to defer expansion.
	   ...	The  fmt  string,  as  in  printf(3), followed by the variable
	   arguments required by the format.

       Definition at line 473 of file rte_log.h.

   #define	     RTE_LOG_REGISTER(type,	       name,		level)
	   RTE_LOG_REGISTER_IMPL(type, RTE_STR(name), level)
       Register	 a  dynamic  log type in constructor context with its name and
       level.

       It is a wrapper macro for declaring the logtype,	register the  log  and
       sets it's level in the constructor context.

       Parameters
	   type	The log	type identifier
	   name	Name for the log type to be registered
	   level Log level. A value between EMERG (1) and DEBUG	(8).

       Definition at line 501 of file rte_log.h.

   #define		  RTE_LOG_REGISTER_DEFAULT(type,		level)
	 RTE_LOG_REGISTER_IMPL(type, RTE_STR(RTE_LOG_DEFAULT_LOGTYPE), level)
       This is an equivalent to	RTE_LOG_REGISTER, but  relying	on  the	 build
       system to select	the right format for the logtype.

       Definition at line 508 of file rte_log.h.

   #define RTE_LOG_REGISTER_SUFFIX(type, suffix, level)
       Value:.PP
	   RTE_LOG_REGISTER_IMPL(type,			     \
		RTE_STR(RTE_LOG_DEFAULT_LOGTYPE) "." RTE_STR(suffix), level)
       This  is	 an  equivalent	 to RTE_LOG_REGISTER, but relying on the build
       system to select	the right prefix for the logtype.

       Definition at line 515 of file rte_log.h.

Function Documentation
   int rte_openlog_stream (FILE	* f)
       Change the stream that will be used by the logging system.

       This can	be done	at any time. The f argument represents the  stream  to
       be  used	 to  send  the	logs. If f is NULL, the	default	output is used
       (stderr).

       Parameters
	   f Pointer to	the stream.

       Returns

	    0 on success.

	    Negative on error.

   FILE	* rte_log_get_stream (void)
       Retrieve	  the	stream	 used	by    the    logging	system	  (see
       rte_openlog_stream() to change it).

       Returns
	   Pointer to the stream.

   void	rte_log_set_global_level (uint32_t level)
       Set the global log level.

       After this call,	logs with a level lower	or equal than the level	passed
       as argument will	be displayed.

       Parameters
	   level   Log	 level.	  A   value   between  RTE_LOG_EMERG  (1)  and
	   RTE_LOG_DEBUG (8).

   uint32_t rte_log_get_global_level (void)
       Get the global log level.

       Returns
	   The current global log level.

   int rte_log_get_level (uint32_t logtype)
       Get the log level for a given type.

       Parameters
	   logtype The log type	identifier.

       Returns
	   0 on	success, a negative value if logtype is	invalid.

   bool	rte_log_can_log	(uint32_t logtype, uint32_t loglevel)
       For a given logtype, check if a log with	loglevel can be	printed.

       Parameters
	   logtype The log type	identifier
	   loglevel  Log  level.  A  value  between  RTE_LOG_EMERG   (1)   and
	   RTE_LOG_DEBUG (8).

       Returns
	   Returns 'true' if log can be	printed	and 'false' if it can't.

   int rte_log_set_level_pattern (const	char * pattern,	uint32_t level)
       Set the log level for a given type based	on globbing pattern.

       Parameters
	   pattern The globbing	pattern	identifying the	log type.
	   level The level to be set.

       Returns
	   0 on	success, a negative value if level is invalid.

   int rte_log_set_level_regexp	(const char * regex, uint32_t level)
       Set the log level for a given type based	on regular expression.

       Parameters
	   regex The regular expression	identifying the	log type.
	   level The level to be set.

       Returns
	   0 on	success, a negative value if level is invalid.

   int rte_log_set_level (uint32_t logtype, uint32_t level)
       Set the log level for a given type.

       Parameters
	   logtype The log type	identifier.
	   level The level to be set.

       Returns
	   0 on	success, a negative value if logtype or	level is invalid.

   int rte_log_cur_msg_loglevel	(void)
       Get the current loglevel	for the	message	being processed.

       Before  calling	the user-defined stream	for logging, the log subsystem
       sets a per-lcore	variable containing the	loglevel and  the  logtype  of
       the  message  being  processed. This information	can be accessed	by the
       user-defined log	output function	through	this function.

       Returns
	   The loglevel	of the message being processed.

   int rte_log_cur_msg_logtype (void)
       Get the current logtype for the message being processed.

       Before calling the user-defined stream for logging, the	log  subsystem
       sets  a	per-lcore  variable containing the loglevel and	the logtype of
       the message being processed. This information can be  accessed  by  the
       user-defined log	output function	through	this function.

       Returns
	   The logtype of the message being processed.

   int rte_log_register	(const char * name)
       Register	a dynamic log type

       If  a  log is already registered	with the same type, the	returned value
       is the same than	the previous one.

       Parameters
	   name	The string identifying the log type.

       Returns

	    >0: success, the returned value is	the log	type identifier.

	    (-ENOMEM):	cannot allocate	memory.

   int	rte_log_register_type_and_pick_level  (const  char  *  name,  uint32_t
       level_def)
       Register	a dynamic log type and try to pick its level from EAL options

       rte_log_register()  is called inside. If	successful, the	function tries
       to search for matching regexp in	the list of EAL	log level options  and
       pick  the level from the	last matching entry. If	nothing	can be applied
       from the	list, the level	will be	set to the user-defined	default	value.

       Parameters
	   name	Name for the log type to be registered
	   level_def Fallback level to be  set	if  the	 global	 list  has  no
	   matching options

       Returns

	    >=0: the newly registered log type

	    <0: rte_log_register() error value

   void	rte_log_list_types (FILE * out,	const char * prefix)
       Dump name of each logtype, one per line.

       Parameters
	   out Stream where the	list is	sent.
	   prefix String preceding each	logtype	in the output.

   void	rte_log_dump (FILE * f)
       Dump log	information.

       Dump the	global level and the registered	log types.

       Parameters
	   f The output	stream where the dump should be	sent.

   int rte_log (uint32_t level,	uint32_t logtype, const	char * format,	...)
       Generates a log message.

       The  message will be sent in the	stream defined by the previous call to
       rte_openlog_stream().

       The level argument determines if	the log	should be  displayed  or  not,
       depending on the	loglevel settings.

       The  preferred  alternative  is the RTE_LOG() because it	adds the level
       and type	in the logged string.

       Parameters
	   level  Log  level.  A   value   between   RTE_LOG_EMERG   (1)   and
	   RTE_LOG_DEBUG (8).
	   logtype The log type, for example, RTE_LOGTYPE_EAL.
	   format The format string, as	in printf(3), followed by the variable
	   arguments required by the format.

       Returns

	    0:	Success.

	    Negative on error.

   int	int  rte_vlog  (uint32_t level,	uint32_t logtype, const	char * format,
       va_list ap)
       Generates a log message.

       The message will	be sent	in the stream defined by the previous call  to
       rte_openlog_stream().

       The  level  argument  determines	if the log should be displayed or not,
       depending on the	loglevel settings. A trailing newline may be added  if
       needed.

       The  preferred  alternative  is the RTE_LOG() because it	adds the level
       and type	in the logged string.

       Parameters
	   level  Log  level.  A   value   between   RTE_LOG_EMERG   (1)   and
	   RTE_LOG_DEBUG (8).
	   logtype The log type, for example, RTE_LOGTYPE_EAL.
	   format The format string, as	in printf(3), followed by the variable
	   arguments required by the format.
	   ap The va_list of the variable arguments required by	the format.

       Returns

	    0:	Success.

	    Negative on error.

Author
       Generated automatically by Doxygen for DPDK from	the source code.

Version	25.11.0			Thu Jun	11 2026			  rte_log.h(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=RTE_LOG_REGISTER_SUFFIX&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help