#include <stdint.h>
#include <stdio.h>
#include <stdarg.h>
Go to the source code of this file.
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 0x00000001 |
Log related to eal.
Definition at line 64 of file rte_log.h.
#define RTE_LOGTYPE_MALLOC 0x00000002 |
Log related to malloc.
Definition at line 65 of file rte_log.h.
#define RTE_LOGTYPE_RING 0x00000004 |
Log related to ring.
Definition at line 66 of file rte_log.h.
#define RTE_LOGTYPE_MEMPOOL 0x00000008 |
Log related to mempool.
Definition at line 67 of file rte_log.h.
#define RTE_LOGTYPE_TIMER 0x00000010 |
Log related to timers.
Definition at line 68 of file rte_log.h.
#define RTE_LOGTYPE_PMD 0x00000020 |
Log related to poll mode driver.
Definition at line 69 of file rte_log.h.
#define RTE_LOGTYPE_HASH 0x00000040 |
Log related to hash table.
Definition at line 70 of file rte_log.h.
#define RTE_LOGTYPE_LPM 0x00000080 |
Log related to LPM.
Definition at line 71 of file rte_log.h.
#define RTE_LOGTYPE_KNI 0x00000100 |
Log related to KNI.
Definition at line 72 of file rte_log.h.
#define RTE_LOGTYPE_ACL 0x00000200 |
Log related to ACL.
Definition at line 73 of file rte_log.h.
#define RTE_LOGTYPE_POWER 0x00000400 |
Log related to power.
Definition at line 74 of file rte_log.h.
#define RTE_LOGTYPE_METER 0x00000800 |
Log related to QoS meter.
Definition at line 75 of file rte_log.h.
#define RTE_LOGTYPE_SCHED 0x00001000 |
Log related to QoS port scheduler.
Definition at line 76 of file rte_log.h.
#define RTE_LOGTYPE_PORT 0x00002000 |
Log related to port.
Definition at line 77 of file rte_log.h.
#define RTE_LOGTYPE_TABLE 0x00004000 |
Log related to table.
Definition at line 78 of file rte_log.h.
#define RTE_LOGTYPE_PIPELINE 0x00008000 |
Log related to pipeline.
Definition at line 79 of file rte_log.h.
#define RTE_LOGTYPE_MBUF 0x00010000 |
Log related to mbuf.
Definition at line 80 of file rte_log.h.
#define RTE_LOGTYPE_USER1 0x01000000 |
User-defined log type 1.
Definition at line 83 of file rte_log.h.
#define RTE_LOGTYPE_USER2 0x02000000 |
User-defined log type 2.
Definition at line 84 of file rte_log.h.
#define RTE_LOGTYPE_USER3 0x04000000 |
User-defined log type 3.
Definition at line 85 of file rte_log.h.
#define RTE_LOGTYPE_USER4 0x08000000 |
User-defined log type 4.
Definition at line 86 of file rte_log.h.
#define RTE_LOGTYPE_USER5 0x10000000 |
User-defined log type 5.
Definition at line 87 of file rte_log.h.
#define RTE_LOGTYPE_USER6 0x20000000 |
User-defined log type 6.
Definition at line 88 of file rte_log.h.
#define RTE_LOGTYPE_USER7 0x40000000 |
User-defined log type 7.
Definition at line 89 of file rte_log.h.
#define RTE_LOGTYPE_USER8 0x80000000 |
User-defined log type 8.
Definition at line 90 of file rte_log.h.
System is unusable.
Definition at line 93 of file rte_log.h.
Action must be taken immediately.
Definition at line 94 of file rte_log.h.
Critical conditions.
Definition at line 95 of file rte_log.h.
Error conditions.
Definition at line 96 of file rte_log.h.
#define RTE_LOG_WARNING 5U |
Warning conditions.
Definition at line 97 of file rte_log.h.
#define RTE_LOG_NOTICE 6U |
Normal but significant condition.
Definition at line 98 of file rte_log.h.
Informational.
Definition at line 99 of file rte_log.h.
Debug-level messages.
Definition at line 100 of file rte_log.h.
#define RTE_LOG |
( |
|
l, |
|
|
|
t, |
|
|
|
... |
|
) |
| |
Value:(void)((RTE_LOG_ ## l <= RTE_LOG_LEVEL) ? \
rte_log(RTE_LOG_ ## l, \
RTE_LOGTYPE_ ## t, # t ": " __VA_ARGS__) : \
0)
Generates a log message.
The RTE_LOG() is equivalent to rte_log() with two differences:
- RTE_LOG() can be used to remove debug logs at compilation time, depending on RTE_LOG_LEVEL configuration option, and compilation optimization level. If optimization is enabled, the tests involving constants only are pre-computed. If compilation is done with -O0, these tests will be done at run time.
- The log level and log type names are smaller, for example: RTE_LOG(INFO, EAL, "this is a %s", "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 300 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
-
- Returns
- 0 on success.
- Negative on error.
void rte_set_log_level |
( |
uint32_t |
level | ) |
|
Set the global log level.
After this call, all logs that are lower or equal than level and lower or equal than the RTE_LOG_LEVEL configuration option will be displayed.
- Parameters
-
level | Log level. A value between RTE_LOG_EMERG (1) and RTE_LOG_DEBUG (8). |
uint32_t rte_get_log_level |
( |
void |
| ) |
|
Get the global log level.
void rte_set_log_type |
( |
uint32_t |
type, |
|
|
int |
enable |
|
) |
| |
Enable or disable the log type.
- Parameters
-
type | Log type, for example, RTE_LOGTYPE_EAL. |
enable | True for enable; false for disable. |
uint32_t rte_get_log_type |
( |
void |
| ) |
|
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.
void rte_log_set_history |
( |
int |
enable | ) |
|
Enable or disable the history (enabled by default)
- Parameters
-
enable | true to enable, or 0 to disable history. |
void rte_log_dump_history |
( |
FILE * |
f | ) |
|
Dump the log history to a file
- Parameters
-
f | A pointer to a file for output |
int rte_log_add_in_history |
( |
const char * |
buf, |
|
|
size_t |
size |
|
) |
| |
Add a log message to the history.
This function can be called from a user-defined log stream. It adds the given message in the history that can be dumped using rte_log_dump_history().
- Parameters
-
buf | A data buffer containing the message to be saved in the history. |
size | The length of the data buffer. |
- Returns
- 0: Success.
- (-ENOBUFS) if there is no room to store the message.
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 global rte_logs variable.
The preferred alternative is the RTE_LOG() function because debug logs may be removed at compilation time if optimization is enabled. Moreover, logs are automatically prefixed by type when using the macro.
- 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 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 global rte_logs variable. A trailing newline may be added if needed.
The preferred alternative is the RTE_LOG() because debug logs may be removed at compilation time.
- 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.
Variable Documentation
FILE* eal_default_log_stream |