Log

- Main Page
- Related Pages
- Modules
- Namespaces
- Data Structures
- Files
- Examples

Data Structures | Macros | Typedefs | Enumerations | Functions | Variables
Log
Eina » Tools

Full-featured logging system. More...

## Data Structures
struct | _Eina_Log_Domain
| The domain used for logging. More...

## Macros
#define | EINA_LOG_DOMAIN_DEFAULT EINA_LOG_DOMAIN_GLOBAL
| This macro defines the domain to use with the macros EINA_LOG_DOM_DBG(), EINA_LOG_DOM_INFO(), EINA_LOG_DOM_WARN(), EINA_LOG_DOM_ERR() and EINA_LOG_DOM_CRIT(). More...
#define | EINA_LOG(DOM, LEVEL, fmt, ...)
| Logs a message on the specified domain, level and format. More...
#define | EINA_LOG_DOM_CRIT(DOM, fmt, ...) EINA_LOG(DOM, EINA_LOG_LEVEL_CRITICAL, fmt, ## __VA_ARGS__)
| Logs a message with level CRITICAL on the specified domain and format.
#define | EINA_LOG_DOM_ERR(DOM, fmt, ...) EINA_LOG(DOM, EINA_LOG_LEVEL_ERR, fmt, ## __VA_ARGS__)
| Logs a message with level ERROR on the specified domain and format.
#define | EINA_LOG_DOM_INFO(DOM, fmt, ...) EINA_LOG(DOM, EINA_LOG_LEVEL_INFO, fmt, ## __VA_ARGS__)
| Logs a message with level INFO on the specified domain and format.
#define | EINA_LOG_DOM_DBG(DOM, fmt, ...) EINA_LOG(DOM, EINA_LOG_LEVEL_DBG, fmt, ## __VA_ARGS__)
| Logs a message with level DEBUG on the specified domain and format.
#define | EINA_LOG_DOM_WARN(DOM, fmt, ...) EINA_LOG(DOM, EINA_LOG_LEVEL_WARN, fmt, ## __VA_ARGS__)
| Logs a message with level WARN on the specified domain and format.
#define | EINA_LOG_CRIT(fmt, ...)
| Logs a message with level CRITICAL on the default domain with the specified format. More...
#define | EINA_LOG_ERR(fmt, ...) EINA_LOG(EINA_LOG_DOMAIN_DEFAULT, EINA_LOG_LEVEL_ERR, fmt, ## __VA_ARGS__)
| Logs a message with level ERROR on the default domain with the specified format.
#define | EINA_LOG_INFO(fmt, ...) EINA_LOG(EINA_LOG_DOMAIN_DEFAULT, EINA_LOG_LEVEL_INFO, fmt, ## __VA_ARGS__)
| Logs a message with level INFO on the default domain with the specified format.
#define | EINA_LOG_WARN(fmt, ...) EINA_LOG(EINA_LOG_DOMAIN_DEFAULT, EINA_LOG_LEVEL_WARN, fmt, ## __VA_ARGS__)
| Logs a message with level WARN on the default domain with the specified format.
#define | EINA_LOG_DBG(fmt, ...) EINA_LOG(EINA_LOG_DOMAIN_DEFAULT, EINA_LOG_LEVEL_DBG, fmt, ## __VA_ARGS__)
| Logs a message with level DEBUG on the default domain with the specified format.
#define | EINA_LOG_STATE_INIT _eina_log_state_init
| String that indicates the log system is initializing.
#define | EINA_LOG_STATE_SHUTDOWN _eina_log_state_shutdown
| String that indicates the log system is shutting down.

## Typedefs
typedef struct _Eina_Log_Domain | Eina_Log_Domain
| The domain used for logging.
typedef enum _Eina_Log_Level | Eina_Log_Level
| List of available logging levels.
typedef void(* | Eina_Log_Print_Cb) (const Eina_Log_Domain *d, Eina_Log_Level level, const char *file, const char *fnc, int line, const char *fmt, void *data, va_list args)
| Type for print callbacks.
typedef enum _Eina_Log_State | Eina_Log_State
| List of available log states.

## Enumerations
enum | _Eina_Log_Level { EINA_LOG_LEVEL_CRITICAL, EINA_LOG_LEVEL_ERR, EINA_LOG_LEVEL_WARN, EINA_LOG_LEVEL_INFO, EINA_LOG_LEVEL_DBG, EINA_LOG_LEVELS, EINA_LOG_LEVEL_UNKNOWN = (-2147483647 - 1) }
| List of available logging levels. More...
enum | _Eina_Log_State { EINA_LOG_STATE_START, EINA_LOG_STATE_STOP }
| List of available log states.

## Functions
EAPI void | eina_log_threads_enable (void)
| Enable logging module to handle threads. More...
EAPI void | eina_log_print_cb_set (Eina_Log_Print_Cb cb, void *data) EINA_ARG_NONNULL(1)
| Sets logging method to use. More...
EAPI void | eina_log_level_set (int level)
| Set the default log level. More...
EAPI int | eina_log_level_get (void) EINA_WARN_UNUSED_RESULT
| Get the default log level. More...
static Eina_Bool | eina_log_level_check (int level)
| Determine if a given `level` should be logged. More...
EAPI Eina_Bool | eina_log_main_thread_check (void) EINA_CONST EINA_WARN_UNUSED_RESULT
| Checks if current thread is the main thread. More...
EAPI void | eina_log_color_disable_set (Eina_Bool disabled)
| Enable or disable colored text in the logs. More...
EAPI Eina_Bool | eina_log_color_disable_get (void) EINA_WARN_UNUSED_RESULT
| Determine if color logging is enabled or disabled. More...
EAPI void | eina_log_file_disable_set (Eina_Bool disabled)
| Set if originating file name logging should be disabled. More...
EAPI Eina_Bool | eina_log_file_disable_get (void) EINA_WARN_UNUSED_RESULT
| Get if originating file name logging should be disabled. More...
EAPI void | eina_log_function_disable_set (Eina_Bool disabled)
| Set if originating function name logging should be disabled. More...
EAPI Eina_Bool | eina_log_function_disable_get (void) EINA_WARN_UNUSED_RESULT
| Get if originating function name logging should be disabled. More...
EAPI void | eina_log_abort_on_critical_set (Eina_Bool abort_on_critical)
| Set if critical messages should abort the program. More...
EAPI Eina_Bool | eina_log_abort_on_critical_get (void) EINA_WARN_UNUSED_RESULT
| Get if critical messages should abort the program. More...
EAPI void | eina_log_abort_on_critical_level_set (int critical_level)
| Set level that triggers abort if abort-on-critical is set. More...
EAPI int | eina_log_abort_on_critical_level_get (void) EINA_WARN_UNUSED_RESULT
| Get level that triggers abort if abort-on-critical is set. More...
EAPI void | eina_log_domain_level_set (const char *domain_name, int level) EINA_ARG_NONNULL(1)
| Set the domain level given its name. More...
EAPI int | eina_log_domain_level_get (const char *domain_name) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1)
| Get the domain level given its name. More...
EAPI int | eina_log_domain_registered_level_get (int domain) EINA_WARN_UNUSED_RESULT
| Get the domain level given its identifier. More...
EAPI void | eina_log_domain_registered_level_set (int domain, int level)
| Set the domain level given its identifier. More...
static Eina_Bool | eina_log_domain_level_check (int domain, int level)
EAPI int | eina_log_domain_register (const char *name, const char *color) EINA_ARG_NONNULL(1)
EAPI void | eina_log_domain_unregister (int domain)
| Forget about a logging domain registered by eina_log_domain_register() More...
EAPI void | eina_log_print (int domain, Eina_Log_Level level, const char *file, const char *function, int line, const char *fmt,...) EINA_ARG_NONNULL(3
| Print out log message using given domain and level. More...
EAPI void | EINA_PRINTF (6, 7) EINA_NOINSTRUMENT
EAPI void | eina_log_vprint (int domain, Eina_Log_Level level, const char *file, const char *fnc, int line, const char *fmt, va_list args) EINA_ARG_NONNULL(3
| Print out log message using given domain and level. More...
EAPI void | eina_log_print_cb_stdout (const Eina_Log_Domain *d, Eina_Log_Level level, const char *file, const char *fnc, int line, const char *fmt, void *data, va_list args)
| Alternative logging method, this will output to standard output stream. More...
EAPI void | eina_log_print_cb_stderr (const Eina_Log_Domain *d, Eina_Log_Level level, const char *file, const char *fnc, int line, const char *fmt, void *data, va_list args)
| Default logging method, this will output to standard error stream. More...
EAPI void | eina_log_print_cb_file (const Eina_Log_Domain *d, Eina_Log_Level level, const char *file, const char *fnc, int line, const char *fmt, void *data, va_list args)
| Alternative logging method, this will output to given file stream. More...
EAPI void | eina_log_print_cb_journald (const Eina_Log_Domain *d, Eina_Log_Level level, const char *file, const char *fnc, int line, const char *fmt, void *data, va_list args)
| Alternative logging method, this will output to systemd journal. More...
EAPI void | eina_log_console_color_set (FILE *fp, const char *color) EINA_ARG_NONNULL(1
| Configure console color of given file. More...
EAPI void | eina_log_timing (int domain, Eina_Log_State state, const char *phase) EINA_ARG_NONNULL(1
| Start or stop the timing of a phase. More...

## Variables
EAPI int | EINA_LOG_DOMAIN_GLOBAL
| EINA_LOG_DOMAIN_GLOBAL is the general purpose log domain to be used, it is always registered and available everywhere.
EAPI void | EINA_NOINSTRUMENT
EAPI void EAPI const char * | _eina_log_state_init
| String that indicates the log system is initializing.
EAPI const char * | _eina_log_state_shutdown
| String that indicates the log system is shutting down.

## Detailed Description

Full-featured logging system.

Eina provides eina_log_print(), a standard function to manage all logging messages. This function may be called directly or using the helper macros such as EINA_LOG_DBG(), EINA_LOG_ERR() or those that take a specific domain as argument EINA_LOG_DOM_DBG(), EINA_LOG_DOM_ERR(). Internally, eina_log_print() will call the function defined with eina_log_print_cb_set(), that defaults to eina_log_print_cb_stderr(), but may be changed to do whatever you need, such as networking or syslog logging.

The logging system is thread safe once initialized with eina_log_threads_enable(). The thread that calls this function first is considered "main thread" and other threads will have their thread id (pthread_self()) printed in the log message so it is easy to detect from where it is coming.

Log domains is the Eina way to differentiate messages. There might be different domains to represent different modules, different feature-set, different categories and so on. Filtering can be applied to domain names by means of `EINA_LOG_LEVELS` environment variable or eina_log_domain_level_set().

The different logging levels serve to customize the amount of debugging one want to take and may be used to automatically call abort() once some given level message is printed. This is controlled by environment variable `EINA_LOG_ABORT` and the level to be considered critical with `EINA_LOG_ABORT_LEVEL`. These can be changed with eina_log_abort_on_critical_set() and eina_log_abort_on_critical_level_set().

The default maximum level to print is defined by environment variable `EINA_LOG_LEVEL`, but may be set per-domain with `EINA_LOG_LEVELS`. It will default to EINA_LOG_ERR. This can be changed with eina_log_level_set().

To use the log system Eina must be initialized with eina_init() and later shut down with eina_shutdown(). Here is a straightforward example:

//Compile with:
//gcc -Wall -o eina_log_01 eina_log_01.c `pkg-config --cflags --libs eina`
#include <stdlib.h>
#include <stdio.h>
#include <Eina.h>
void test_warn(void)
{
EINA_LOG_WARN("Here is a warning message");
}
int main(void)
{
if (!eina_init())
{
printf("log during the initialization of Eina_Log module\n");
return EXIT_FAILURE;
}
test_warn();
eina_shutdown();
return EXIT_SUCCESS;
}

Compile this code with the following command:

    gcc -Wall -o eina_log_01 eina_log_01.c `pkg-config --cflags --libs eina`

Now execute the program with:

    EINA_LOG_LEVEL=2 ./eina_log_01

You should see a message displayed in the terminal.

For more information, you can look at the Log Tutorial.

## Macro Definition Documentation

#define EINA_LOG_DOMAIN_DEFAULT EINA_LOG_DOMAIN_GLOBAL

This macro defines the domain to use with the macros EINA_LOG_DOM_DBG(), EINA_LOG_DOM_INFO(), EINA_LOG_DOM_WARN(), EINA_LOG_DOM_ERR() and EINA_LOG_DOM_CRIT().

If not defined prior to the inclusion of this header, then it defaults to EINA_LOG_DOMAIN_GLOBAL.

Note
  One may like to redefine this in its code to avoid typing too much. In this case the recommended way is:

1 #include <Eina.h>
2 #undef EINA_LOG_DOMAIN_DEFAULT
3 #define EINA_LOG_DOMAIN_DEFAULT _log_dom
4 static int _log_dom = -1;
5
6 int main(void)
7 {
8 eina_init();
9 _log_dom = eina_log_domain_register("mydom", EINA_COLOR_CYAN);
10 EINA_LOG_ERR("using my own domain");
11 return 0;
12 }

Warning
  If one defines the domain prior to inclusion of this header, the defined log domain symbol must be defined prior as well, otherwise the inlined functions defined by Eina will fail to find the symbol, causing build failure.

1 #define EINA_LOG_DOMAIN_DEFAULT _log_dom
2 static int _log_dom = -1; // must come before inclusion of Eina.h!
3 #include <Eina.h>
4
5 int main(void)
6 {
7 eina_init();
8 _log_dom = eina_log_domain_register("mydom", EINA_COLOR_CYAN);
9 EINA_LOG_ERR("using my own domain");
10 return 0;
11 }

#define EINA_LOG | ( |  | DOM,
|  |  | LEVEL,
|  |  | fmt,
|  |  | ...
| ) |  |

Value:
eina_log_print(DOM, \
LEVEL, \
__FILE__, \
__FUNCTION__, \
__LINE__, \
fmt, \
## __VA_ARGS__)
eina_log_print
EAPI void eina_log_print(int domain, Eina_Log_Level level, const char *file, const char *function, int line, const char *fmt,...) EINA_ARG_NONNULL(3
Print out log message using given domain and level.

Logs a message on the specified domain, level and format.

Note
  if `EINA_LOG_LEVEL_MAXIMUM` is defined, then messages larger than this value will be ignored regardless of current domain level, the eina_log_print() is not even called! Most compilers will just detect the two integers make the branch impossible and remove the branch and function call all together. Take this as optimization tip and possible remove debug messages from binaries to be deployed, saving on hot paths. Never define `EINA_LOG_LEVEL_MAXIMUM` on public header files.

#define EINA_LOG_CRIT | ( |  | fmt,
|  |  | ...
| ) |  |

Value:
EINA_LOG(EINA_LOG_DOMAIN_DEFAULT, \
EINA_LOG_LEVEL_CRITICAL, \
fmt, \
## __VA_ARGS__)
EINA_LOG_LEVEL_CRITICAL
Critical log level.
Definition: eina_log.h:457
EINA_LOG_DOMAIN_DEFAULT
#define EINA_LOG_DOMAIN_DEFAULT
This macro defines the domain to use with the macros EINA_LOG_DOM_DBG(), EINA_LOG_DOM_INFO(), EINA_LOG_DOM_WARN(), EINA_LOG_DOM_ERR() and EINA_LOG_DOM_CRIT().
Definition: eina_log.h:284
EINA_LOG
#define EINA_LOG(DOM, LEVEL, fmt,...)
Logs a message on the specified domain, level and format.
Definition: eina_log.h:311

Logs a message with level CRITICAL on the default domain with the specified format.

Referenced by emotion_init().

## Enumeration Type Documentation

enum _Eina_Log_Level

List of available logging levels.

Enumerator
EINA_LOG_LEVEL_CRITICAL | Critical log level.
EINA_LOG_LEVEL_ERR | Error log level.
EINA_LOG_LEVEL_WARN | Warning log level.
EINA_LOG_LEVEL_INFO | Information log level.
EINA_LOG_LEVEL_DBG | Debug log level.
EINA_LOG_LEVELS | Count of default log levels.
EINA_LOG_LEVEL_UNKNOWN | Unknown level.

## Function Documentation

EAPI void eina_log_threads_enable | ( | void |  | ) |

Enable logging module to handle threads.

There is no disable option on purpose, if it is enabled, there is no way back until you call the last eina_shutdown().

There is no function to retrieve if threads are enabled as one is not supposed to know this from outside.

After this call is executed at least once, if Eina was compiled with threads support then logging will lock around debug messages and threads that are not the main thread will have its identifier printed.

The main thread is considered the thread where the first eina_init() was called.

References EINA_TRUE.

EAPI void eina_log_print_cb_set | ( | Eina_Log_Print_Cb | cb,
|  | void * | data
| ) |  |

Sets logging method to use.

Parameters

  cb | The callback to call when printing a log.
  data | The data to pass to the callback.

By default, eina_log_print_cb_stderr() is used.

Note
  MT: safe to call from any thread.
  MT: given function cb will be called protected by mutex. This means you're safe from other calls but you should never call eina_log_print(), directly or indirectly.

EAPI void eina_log_level_set | ( | int | level | ) |

Set the default log level.

Parameters

  level | The log level.

This function sets the log level `level`. It is used in eina_log_print().

Note
  this is initially set to envvar EINA_LOG_LEVEL by eina_init().

See also
  eina_log_level_get()

References EINA_LIKELY, EINA_LOG_DOMAIN_GLOBAL, and _Eina_Log_Domain::level.

Referenced by ecore_drm_init().

EAPI int eina_log_level_get | ( | void |  | ) |

Get the default log level.

Returns
  the log level that limits eina_log_print().

See also
  eina_log_level_set()

static Eina_Bool eina_log_level_check | ( | int | level | ) |
| inlinestatic

Determine if a given `level` should be logged.

Returns
  EINA_TRUE if the `level` should be logged, else EINA_FALSE.

See also
  eina_log_level_set()

EAPI Eina_Bool eina_log_main_thread_check | ( | void |  | ) |

Checks if current thread is the main thread.

If there is no thread support (compiled with –disable-pthreads) or threads were not enabled, then EINA_TRUE is returned. The only case where EINA_FALSE is returned is when threads were successfully enabled but the current thread is not the one that called eina_log_threads_init() (the manin thread).

Returns
  EINA_TRUE if the current thread is the one that called eina_log_threads_init(), otherwise EINA_FALSE.

References EINA_TRUE.

EAPI void eina_log_color_disable_set | ( | Eina_Bool | disabled | ) |

Enable or disable colored text in the logs.

Parameters

  disabled | If EINA_TRUE, color logging should be disabled.

Note
  this is initially set to envvar EINA_LOG_COLOR_DISABLE by eina_init().

See also
  eina_log_color_disable_get()

References _Eina_Log_Domain::color, _Eina_Log_Domain::domain_str, and _Eina_Log_Domain::name.

EAPI Eina_Bool eina_log_color_disable_get | ( | void |  | ) |

Determine if color logging is enabled or disabled.

Returns
  If EINA_TRUE, color logging is disabled.

See also
  eina_log_color_disable_set()

References EINA_TRUE.

EAPI void eina_log_file_disable_set | ( | Eina_Bool | disabled | ) |

Set if originating file name logging should be disabled.

Parameters

  disabled | if EINA_TRUE, file name logging should be disabled.

Note
  this is initially set to envvar EINA_LOG_FILE_DISABLE by eina_init().

See also
  eina_log_file_disable_get()

EAPI Eina_Bool eina_log_file_disable_get | ( | void |  | ) |

Get if originating file name logging should be disabled.

Returns
  if EINA_TRUE, file name logging should be disabled.

See also
  eina_log_file_disable_set()

References EINA_TRUE.

EAPI void eina_log_function_disable_set | ( | Eina_Bool | disabled | ) |

Set if originating function name logging should be disabled.

Parameters

  disabled | if EINA_TRUE, function name logging should be disabled.

Note
  this is initially set to envvar EINA_LOG_FUNCTION_DISABLE by eina_init().

See also
  eina_log_function_disable_get()

EAPI Eina_Bool eina_log_function_disable_get | ( | void |  | ) |

Get if originating function name logging should be disabled.

Returns
  if EINA_TRUE, function name logging should be disabled.

See also
  eina_log_function_disable_set()

References EINA_TRUE.

EAPI void eina_log_abort_on_critical_set | ( | Eina_Bool | abort_on_critical | ) |

Set if critical messages should abort the program.

Parameters

  abort_on_critical | if EINA_TRUE, messages with level equal or smaller than eina_log_abort_on_critical_level_get() will abort the program.

Note
  this is initially set to envvar EINA_LOG_ABORT by eina_init().

See also
  eina_log_abort_on_critical_get()
  eina_log_abort_on_critical_level_set()

Referenced by ecore_buffer_queue_init().

EAPI Eina_Bool eina_log_abort_on_critical_get | ( | void |  | ) |

Get if critical messages should abort the program.

Returns
  if EINA_TRUE, any messages with level equal or smaller than eina_log_abort_on_critical_level_get() will abort the program.

See also
  eina_log_abort_on_critical_set()
  eina_log_abort_on_critical_level_set()

References EINA_FALSE.

EAPI void eina_log_abort_on_critical_level_set | ( | int | critical_level | ) |

Set level that triggers abort if abort-on-critical is set.

Parameters

  critical_level | levels equal or smaller than the given value will trigger program abortion if eina_log_abort_on_critical_get() returns EINA_TRUE.

Note
  this is initially set to envvar EINA_LOG_ABORT_LEVEL by eina_init().

See also
  eina_log_abort_on_critical_level_get()
  eina_log_abort_on_critical_get()

Referenced by ecore_buffer_queue_init().

EAPI int eina_log_abort_on_critical_level_get | ( | void |  | ) |

Get level that triggers abort if abort-on-critical is set.

Returns
  critical level equal or smaller than value will trigger program abortion if eina_log_abort_on_critical_get() returns EINA_TRUE.

See also
  eina_log_abort_on_critical_level_set()
  eina_log_abort_on_critical_get()

EAPI void eina_log_domain_level_set | ( | const char * | domain_name,
|  | int | level
| ) |  |

Set the domain level given its name.

This call has the same effect as setting EINA_LOG_LEVELS=<`domain_name>`:<`level>`

Parameters

  domain_name | domain name to change the level. It may be of a still not registered domain. If the domain is not registered yet, it will be saved as a pending set and applied upon registration.
  level | level to use to limit eina_log_print() for given domain.

References eina_inlist_append(), EINA_INLIST_FOREACH, EINA_INLIST_GET, and _Eina_Log_Domain::level.

Referenced by ecore_drm_init().

EAPI int eina_log_domain_level_get | ( | const char * | domain_name | ) |

Get the domain level given its name.

Parameters

  domain_name | domain name to retrieve the level. It may be of a still not registered domain. If the domain is not registered yet, but there is a pending value, either from eina_log_domain_level_set(),EINA_LOG_LEVELS environment variable or from EINA_LOG_LEVELS_GLOB, these are returned. If nothing else was found, then the global/default level (eina_log_level_get()) is returned.

Returns
  level to use to limit eina_log_print() for given domain. On error (`domain_name` == NULL), EINA_LOG_LEVEL_UNKNOWN is returned.

See also
  eina_log_domain_level_set()
  eina_log_domain_registered_level_get()

References EINA_INLIST_FOREACH, EINA_LOG_LEVEL_UNKNOWN, and _Eina_Log_Domain::level.

EAPI int eina_log_domain_registered_level_get | ( | int | domain | ) |

Get the domain level given its identifier.

Parameters

  domain | identifier, so it must be previously registered with eina_log_domain_register(). It's a much faster version of eina_log_domain_level_get(), but relies on domain being present.

Returns
  EINA_TRUE if level should be printed, EINA_FALSE if not. (domain's level is greater or equal level).

References EINA_LOG_LEVEL_UNKNOWN, and _Eina_Log_Domain::level.

Referenced by efl::eina::_domain_base< log_domain >::get_level().

EAPI void eina_log_domain_registered_level_set | ( | int | domain,
|  | int | level
| ) |  |

Set the domain level given its identifier.

Parameters

  domain | identifier, so it must be previously registered with eina_log_domain_register(). It's a much faster version of eina_log_domain_level_get(), but relies on domain being present.
  level | level to use to limit eina_log_print() for given domain.

Since
  1.10

References _Eina_Log_Domain::level.

Referenced by efl::eina::_domain_base< log_domain >::set_level().

EAPI int eina_log_domain_register | ( | const char * | name,
|  | const char * | color
| ) |  |

Parameters

  name | Domain name
  color | Color of the domain name

Returns
  Domain index that will be used as the DOMAIN parameter on log macros. A negative return value means an log occurred.

Note
  MT: safe to call from any thread.

Referenced by ecore_audio_init(), ecore_buffer_init(), ecore_buffer_queue_init(), ecore_con_init(), ecore_drm_init(), ecore_evas_init(), ecore_event_init(), ecore_file_init(), ecore_imf_init(), ecore_init(), ecore_ipc_init(), ecore_psl1ght_init(), ecore_sdl_init(), ecore_win32_init(), ecore_wl_init(), ecore_x_init(), ector_init(), edje_init(), eet_init(), eeze_init(), efreet_mime_init(), efreet_trash_init(), eina_init(), eina_mmap_safety_enabled_set(), eio_init(), eldbus_init(), elocation_init(), elua_init(), emile_init(), emotion_init(), eo_init(), ethumb_client_init(), ethumb_init(), and evas_init().

EAPI void eina_log_domain_unregister | ( | int | domain | ) |

Forget about a logging domain registered by eina_log_domain_register()

Parameters

  domain | domain identifier as reported by eina_log_domain_register(), must be >= 0.

Note
  MT: safe to call from any thread.

Referenced by ecore_audio_shutdown(), ecore_buffer_init(), ecore_buffer_queue_init(), ecore_buffer_queue_shutdown(), ecore_buffer_shutdown(), ecore_con_shutdown(), ecore_drm_init(), ecore_drm_shutdown(), ecore_evas_shutdown(), ecore_event_shutdown(), ecore_file_shutdown(), ecore_imf_shutdown(), ecore_ipc_shutdown(), ecore_psl1ght_init(), ecore_psl1ght_shutdown(), ecore_sdl_shutdown(), ecore_shutdown(), ecore_win32_init(), ecore_win32_shutdown(), ecore_wl_init(), ecore_x_init(), ecore_x_init_from_display(), ector_shutdown(), edje_init(), eet_init(), eet_shutdown(), eeze_init(), eeze_shutdown(), efreet_mime_init(), efreet_mime_shutdown(), efreet_trash_shutdown(), eio_init(), eio_shutdown(), eldbus_init(), eldbus_shutdown(), elocation_shutdown(), elua_shutdown(), emile_shutdown(), emotion_init(), emotion_shutdown(), eo_shutdown(), ethumb_client_shutdown(), ethumb_init(), ethumb_shutdown(), evas_init(), evas_shutdown(), and efl::eina::log_domain::~log_domain().

EAPI void eina_log_print | ( | int | domain,
|  | Eina_Log_Level | level,
|  | const char * | file,
|  | const char * | function,
|  | int | line,
|  | const char * | fmt,
|  |  | ...
| ) |  |

Print out log message using given domain and level.

Note
  Usually you'll not use this function directly but the helper macros EINA_LOG(), EINA_LOG_DOM_CRIT(), EINA_LOG_CRIT() and so on. See eina_log.h

Parameters

  domain | logging domain to use or `EINA_LOG_DOMAIN_GLOBAL` if you registered none. It is recommended that modules and applications have their own logging domain.
  level | message level, those with level greater than user specified value (eina_log_level_set() or environment variables EINA_LOG_LEVEL, EINA_LOG_LEVELS) will be ignored.
  file | filename that originated the call, must not be `NULL`.
  function | function that originated the call, must not be `NULL`.
  line | originating line in file.
  fmt | printf-like format to use. Should not provide trailing ' ' as it is automatically included.
  ... | variadic args.

Note
  MT: this function may be called from different threads if eina_log_threads_enable() was called before.

Referenced by eina_magic_fail().

EAPI void eina_log_vprint | ( | int | domain,
|  | Eina_Log_Level | level,
|  | const char * | file,
|  | const char * | fnc,
|  | int | line,
|  | const char * | fmt,
|  | va_list | args
| ) |  |

Print out log message using given domain and level.

Note
  Usually you'll not use this function directly but the helper macros EINA_LOG(), EINA_LOG_DOM_CRIT(), EINA_LOG_CRIT() and so on. See eina_log.h

Parameters

  domain | logging domain to use or `EINA_LOG_DOMAIN_GLOBAL` if you registered none. It is recommended that modules and applications have their own logging domain.
  level | message level, those with level greater than user specified value (eina_log_level_set() or environment variables EINA_LOG_LEVEL, EINA_LOG_LEVELS) will be ignored.
  file | filename that originated the call, must not be `NULL`.
  fnc | function that originated the call, must not be `NULL`.
  line | originating line in file.
  fmt | printf-like format to use. Should not provide trailing ' ' as it is automatically included.
  args | the arguments needed by the format.

Note
  MT: this function may be called from different threads if eina_log_threads_enable() was called before.

See also
  eina_log_print()

EAPI void eina_log_print_cb_stdout | ( | const Eina_Log_Domain * | d,
|  | Eina_Log_Level | level,
|  | const char * | file,
|  | const char * | fnc,
|  | int | line,
|  | const char * | fmt,
|  | void * | data,
|  | va_list | args
| ) |  |

Alternative logging method, this will output to standard output stream.

Parameters

  d | The domain.
  level | The level.
  file | The file which is logged.
  fnc | The function which is logged.
  line | The line which is logged.
  fmt | The ouptut format to use.
  data | Not used.
  args | The arguments needed by the format.

This method will colorize output based on domain provided color and message logging level. To disable color, set environment variable EINA_LOG_COLOR_DISABLE=1. Similarly, to disable file and line information, set EINA_LOG_FILE_DISABLE=1 or EINA_LOG_FUNCTION_DISABLE=1 to avoid function name in output. It is not acceptable to have both EINA_LOG_FILE_DISABLE and EINA_LOG_FUNCTION_DISABLE at the same time, in this case just EINA_LOG_FUNCTION_DISABLE will be considered and file information will be printed anyways.

Note
  MT: if threads are enabled, this function is called within locks.
  MT: Threads different from main thread will have thread id appended to domain name.

EAPI void eina_log_print_cb_stderr | ( | const Eina_Log_Domain * | d,
|  | Eina_Log_Level | level,
|  | const char * | file,
|  | const char * | fnc,
|  | int | line,
|  | const char * | fmt,
|  | void * | data,
|  | va_list | args
| ) |  |

Default logging method, this will output to standard error stream.

Parameters

  d | The domain.
  level | The level.
  file | The file which is logged.
  fnc | The function which is logged.
  line | The line which is logged.
  fmt | The ouptut format to use.
  data | Not used.
  args | The arguments needed by the format.

This method will colorize output based on domain provided color and message logging level.

To disable color, set environment variable EINA_LOG_COLOR_DISABLE=1. To enable color, even if directing to a file or when using a non-supported color terminal, use EINA_LOG_COLOR_DISABLE=0. If EINA_LOG_COLOR_DISABLE is unset (or -1), then Eina will disable color if terminal ($TERM) is unsupported or if redirecting to a file.

. Similarly, to disable file and line information, set EINA_LOG_FILE_DISABLE=1 or EINA_LOG_FUNCTION_DISABLE=1 to avoid function name in output. It is not acceptable to have both EINA_LOG_FILE_DISABLE and EINA_LOG_FUNCTION_DISABLE at the same time, in this case just EINA_LOG_FUNCTION_DISABLE will be considered and file information will be printed anyways.

Note
  MT: if threads are enabled, this function is called within locks.
  MT: Threads different from main thread will have thread id appended to domain name.

EAPI void eina_log_print_cb_file | ( | const Eina_Log_Domain * | d,
|  | Eina_Log_Level | level,
|  | const char * | file,
|  | const char * | fnc,
|  | int | line,
|  | const char * | fmt,
|  | void * | data,
|  | va_list | args
| ) |  |

Alternative logging method, this will output to given file stream.

Parameters

  d | The domain.
  level | Not used.
  file | The file which is logged.
  fnc | The function which is logged.
  line | The line which is logged.
  fmt | The ouptut format to use.
  data | The file which will store the output (as a FILE *).
  args | The arguments needed by the format.

This method will never output color.

Note
  MT: if threads are enabled, this function is called within locks.
  MT: Threads different from main thread will have thread id appended to domain name.

EAPI void eina_log_print_cb_journald | ( | const Eina_Log_Domain * | d,
|  | Eina_Log_Level | level,
|  | const char * | file,
|  | const char * | fnc,
|  | int | line,
|  | const char * | fmt,
|  | void * | data,
|  | va_list | args
| ) |  |

Alternative logging method, this will output to systemd journal.

Parameters

  d | The domain.
  level | Not used.
  file | The file which is logged.
  fnc | The function which is logged.
  line | The line which is logged.
  fmt | The ouptut format to use.
  data | The file which will store the output (as a FILE *).
  args | The arguments needed by the format.

This method will never output color.

Note
  if systemd journal is not there it will display error on stderr.
  if the process has been started by systemd this will be the default logging method.

Since
  1.8

EAPI void eina_log_console_color_set | ( | FILE * | fp,
|  | const char * | color
| ) |  |

Configure console color of given file.

Parameters

  fp | file to configure console color (usually stderr or stdout).
  color | a VT color code such as EINA_COLOR_RED or EINA_COLOR_RESET.

Note
  if color is disabled, nothing is done. See eina_log_color_disable_get()
  on windows, both fp and color is converted automatically.

Since
  1.7

EAPI void eina_log_timing | ( | int | domain,
|  | Eina_Log_State | state,
|  | const char * | phase
| ) |  |

Start or stop the timing of a phase.

Parameters

  domain | The domain.
  state | State indicating if we are starting or stopping a phase.
  phase | The name of the phase to be used in the log.

Note
  One domain can be in only one phase at a time.
  If you change the name of the phase, it is assumed that the previous phase has stopped.
  The phase name should be available for all the life of the timing.

Since
  1.8

Referenced by ecore_audio_init(), ecore_audio_shutdown(), ecore_con_init(), ecore_con_shutdown(), ecore_evas_init(), ecore_evas_shutdown(), ecore_init(), ecore_shutdown(), ector_init(), ector_shutdown(), edje_init(), eet_init(), eet_shutdown(), eina_init(), eina_shutdown(), eio_init(), eio_shutdown(), elua_init(), elua_shutdown(), emile_init(), emile_shutdown(), eo_init(), eo_shutdown(), evas_init(), and evas_shutdown().