Android-cuttlefish cvd tool
Files | Classes | Macros | Typedefs | Enumerations | Functions
Logging

Files

file  log.h
 

Classes

struct  __android_log_message
 

Macros

#define __INTRODUCED_IN(x)
 

Typedefs

typedef enum android_LogPriority android_LogPriority
 
typedef int int void enum log_id log_id_t
 
typedef void(* __android_logger_function) (const struct __android_log_message *log_message)
 
typedef void(* __android_aborter_function) (const char *abort_message)
 

Enumerations

enum  android_LogPriority {
  ANDROID_LOG_UNKNOWN = 0 , ANDROID_LOG_DEFAULT , ANDROID_LOG_VERBOSE , ANDROID_LOG_DEBUG ,
  ANDROID_LOG_INFO , ANDROID_LOG_WARN , ANDROID_LOG_ERROR , ANDROID_LOG_FATAL ,
  ANDROID_LOG_SILENT
}
 
enum  log_id {
  LOG_ID_MIN = 0 , LOG_ID_MAIN = 0 , LOG_ID_RADIO = 1 , LOG_ID_EVENTS = 2 ,
  LOG_ID_SYSTEM = 3 , LOG_ID_CRASH = 4 , LOG_ID_STATS = 5 , LOG_ID_SECURITY = 6 ,
  LOG_ID_KERNEL = 7 , LOG_ID_MAX , LOG_ID_DEFAULT = 0x7FFFFFFF
}
 

Functions

int __android_log_write (int prio, const char *tag, const char *text)
 
int __android_log_print (int prio, const char *tag, const char *fmt,...) __attribute__((__format__(printf
 
int int __android_log_vprint (int prio, const char *tag, const char *fmt, va_list ap) __attribute__((__format__(printf
 
int int void __android_log_assert (const char *cond, const char *tag, const char *fmt,...) __attribute__((__noreturn__)) __attribute__((__format__(printf
 
int __android_log_buf_write (int bufID, int prio, const char *tag, const char *text)
 
int __android_log_buf_print (int bufID, int prio, const char *tag, const char *fmt,...) __attribute__((__format__(printf
 
void __android_log_write_log_message (struct __android_log_message *log_message) __INTRODUCED_IN(30)
 
void __android_log_set_logger (__android_logger_function logger) __INTRODUCED_IN(30)
 
void __android_log_logd_logger (const struct __android_log_message *log_message) __INTRODUCED_IN(30)
 
void __android_log_stderr_logger (const struct __android_log_message *log_message) __INTRODUCED_IN(30)
 
void __android_log_set_aborter (__android_aborter_function aborter) __INTRODUCED_IN(30)
 
void __android_log_call_aborter (const char *abort_message) __INTRODUCED_IN(30)
 
void __android_log_default_aborter (const char *abort_message) __attribute__((noreturn)) __INTRODUCED_IN(30)
 
int __android_log_is_loggable (int prio, const char *tag, int default_prio) __INTRODUCED_IN(30)
 
int __android_log_is_loggable_len (int prio, const char *tag, size_t len, int default_prio) __INTRODUCED_IN(30)
 
int32_t __android_log_set_minimum_priority (int32_t priority) __INTRODUCED_IN(30)
 
int32_t __android_log_get_minimum_priority (void) __INTRODUCED_IN(30)
 
void __android_log_set_default_tag (const char *tag) __INTRODUCED_IN(30)
 

Detailed Description

Macro Definition Documentation

◆ __INTRODUCED_IN

#define __INTRODUCED_IN (   x)

Typedef Documentation

◆ __android_aborter_function

typedef void(* __android_aborter_function) (const char *abort_message)

Prototype for the 'abort' function that is called when liblog will abort due to __android_log_assert() failures.

◆ __android_logger_function

typedef void(* __android_logger_function) (const struct __android_log_message *log_message)

Prototype for the 'logger' function that is called for every log message.

◆ android_LogPriority

Android log priority values, in increasing order of priority.

◆ log_id_t

typedef int int void enum log_id log_id_t

Identifies a specific log buffer for __android_log_buf_write() and __android_log_buf_print().

Enumeration Type Documentation

◆ android_LogPriority

Android log priority values, in increasing order of priority.

Enumerator
ANDROID_LOG_UNKNOWN 

For internal use only.

ANDROID_LOG_DEFAULT 

The default priority, for internal use only.

ANDROID_LOG_VERBOSE 

Verbose logging. Should typically be disabled for a release apk.

ANDROID_LOG_DEBUG 

Debug logging. Should typically be disabled for a release apk.

ANDROID_LOG_INFO 

Informational logging. Should typically be disabled for a release apk.

ANDROID_LOG_WARN 

Warning logging. For use with recoverable failures.

ANDROID_LOG_ERROR 

Error logging. For use with unrecoverable failures.

ANDROID_LOG_FATAL 

Fatal logging. For use when aborting.

ANDROID_LOG_SILENT 

For internal use only.

◆ log_id

enum log_id

Identifies a specific log buffer for __android_log_buf_write() and __android_log_buf_print().

Enumerator
LOG_ID_MIN 
LOG_ID_MAIN 

The main log buffer. This is the only log buffer available to apps.

LOG_ID_RADIO 

The radio log buffer.

LOG_ID_EVENTS 

The event log buffer.

LOG_ID_SYSTEM 

The system log buffer.

LOG_ID_CRASH 

The crash log buffer.

LOG_ID_STATS 

The statistics log buffer.

LOG_ID_SECURITY 

The security log buffer.

LOG_ID_KERNEL 

The kernel log buffer.

LOG_ID_MAX 
LOG_ID_DEFAULT 

Let the logging function choose the best log target.

Function Documentation

◆ __android_log_assert()

int int void __android_log_assert ( const char *  cond,
const char *  tag,
const char *  fmt,
  ... 
)

Writes an assertion failure to the log (as ANDROID_LOG_FATAL) and to stderr, before calling abort(3).

If fmt is non-null, cond is unused. If fmt is null, the string Assertion failed: s is used with cond as the string argument. If both fmt and cond are null, a default string is provided.

Most callers should use assert(3) from <assert.h> instead, or the __assert and __assert2 functions provided by bionic if more control is needed. They support automatically including the source filename and line number more conveniently than this function.

◆ __android_log_buf_print()

int __android_log_buf_print ( int  bufID,
int  prio,
const char *  tag,
const char *  fmt,
  ... 
)

Writes a formatted string to log buffer id, with priority prio and tag tag. The details of formatting are the same as for printf(3).

Apps should use __android_log_print() instead.

◆ __android_log_buf_write()

int __android_log_buf_write ( int  bufID,
int  prio,
const char *  tag,
const char *  text 
)

Writes the constant string text to the log buffer id, with priority prio and tag tag.

Apps should use __android_log_write() instead.

◆ __android_log_call_aborter()

void __android_log_call_aborter ( const char *  abort_message)

Calls the stored aborter function. This allows for other logging libraries to use the same aborter function by calling this function in liblog.

Parameters
abort_messagean additional message supplied when aborting, for example this is used to call android_set_abort_message() in __android_log_default_aborter().

Available since API level 30.

◆ __android_log_default_aborter()

void __android_log_default_aborter ( const char *  abort_message)

Sets android_set_abort_message() on device then aborts(). This is the default aborter.

Parameters
abort_messagean additional message supplied when aborting. This functions calls android_set_abort_message() with its contents.

Available since API level 30.

◆ __android_log_get_minimum_priority()

int32_t __android_log_get_minimum_priority ( void  )

Gets the minimum priority that will be logged for this process. If none has been set by a previous __android_log_set_minimum_priority() call, this returns ANDROID_LOG_DEFAULT.

Returns
the current minimum priority as android_LogPriority values, or ANDROID_LOG_DEFAULT if none is set.

Available since API level 30.

◆ __android_log_is_loggable()

int __android_log_is_loggable ( int  prio,
const char *  tag,
int  default_prio 
)

Use the per-tag properties "log.tag.<tagname>" along with the minimum priority from __android_log_set_minimum_priority() to determine if a log message with a given prio and tag will be printed. A non-zero result indicates yes, zero indicates false.

If both a priority for a tag and a minimum priority are set by __android_log_set_minimum_priority(), then the lowest of the two values are to determine the minimum priority needed to log. If only one is set, then that value is used to determine the minimum priority needed. If none are set, then default_priority is used.

Parameters
priothe priority to test, takes android_LogPriority values.
tagthe tag to test.
default_priothe default priority to use if no properties or minimum priority are set.
Returns
an integer where 1 indicates that the message is loggable and 0 indicates that it is not.

Available since API level 30.

◆ __android_log_is_loggable_len()

int __android_log_is_loggable_len ( int  prio,
const char *  tag,
size_t  len,
int  default_prio 
)

Use the per-tag properties "log.tag.<tagname>" along with the minimum priority from __android_log_set_minimum_priority() to determine if a log message with a given prio and tag will be printed. A non-zero result indicates yes, zero indicates false.

If both a priority for a tag and a minimum priority are set by __android_log_set_minimum_priority(), then the lowest of the two values are to determine the minimum priority needed to log. If only one is set, then that value is used to determine the minimum priority needed. If none are set, then default_priority is used.

Parameters
priothe priority to test, takes android_LogPriority values.
tagthe tag to test.
lenthe length of the tag.
default_priothe default priority to use if no properties or minimum priority are set.
Returns
an integer where 1 indicates that the message is loggable and 0 indicates that it is not.

Available since API level 30.

◆ __android_log_logd_logger()

void __android_log_logd_logger ( const struct __android_log_message log_message)

Writes the log message to logd. This is an __android_logger_function and can be provided to __android_log_set_logger(). It is the default logger when running liblog on a device.

Parameters
log_messagethe log message to write, see __android_log_message.

Available since API level 30.

◆ __android_log_print()

int __android_log_print ( int  prio,
const char *  tag,
const char *  fmt,
  ... 
)

Writes a formatted string to the log, with priority prio and tag tag. The details of formatting are the same as for printf(3).

◆ __android_log_set_aborter()

void __android_log_set_aborter ( __android_aborter_function  aborter)

Sets a user defined aborter function that is called for __android_log_assert() failures. This user defined aborter function is highly recommended to abort and be noreturn, but is not strictly required to.

Parameters
aborterthe new aborter function, see __android_aborter_function.

Available since API level 30.

◆ __android_log_set_default_tag()

void __android_log_set_default_tag ( const char *  tag)

Sets the default tag if no tag is provided when writing a log message. Defaults to getprogname(). This truncates tag to the maximum log message size, though appropriate tags should be much smaller.

Parameters
tagthe new log tag.

Available since API level 30.

◆ __android_log_set_logger()

void __android_log_set_logger ( __android_logger_function  logger)

Sets a user defined logger function. All log messages sent to liblog will be set to the function pointer specified by logger for processing. It is not expected that log messages are already terminated with a new line. This function should add new lines if required for line separation.

Parameters
loggerthe new function that will handle log messages.

Available since API level 30.

◆ __android_log_set_minimum_priority()

int32_t __android_log_set_minimum_priority ( int32_t  priority)

Sets the minimum priority that will be logged for this process.

Parameters
prioritythe new minimum priority to set, takes android_LogPriority values.
Returns
the previous set minimum priority as android_LogPriority values, or ANDROID_LOG_DEFAULT if none was set.

Available since API level 30.

◆ __android_log_stderr_logger()

void __android_log_stderr_logger ( const struct __android_log_message log_message)

Writes the log message to stderr. This is an __android_logger_function and can be provided to __android_log_set_logger(). It is the default logger when running liblog on host.

Parameters
log_messagethe log message to write, see __android_log_message.

Available since API level 30.

◆ __android_log_vprint()

int int __android_log_vprint ( int  prio,
const char *  tag,
const char *  fmt,
va_list  ap 
)

Equivalent to __android_log_print, but taking a va_list. (If __android_log_print is like printf, this is like vprintf.)

◆ __android_log_write()

int __android_log_write ( int  prio,
const char *  tag,
const char *  text 
)

Writes the constant string text to the log, with priority prio and tag tag.

◆ __android_log_write_log_message()

void __android_log_write_log_message ( struct __android_log_message log_message)

Writes the log message specified by log_message. log_message includes additional file name and line number information that a logger may use. log_message is versioned for backwards compatibility. This assumes that loggability has already been checked through __android_log_is_loggable(). Higher level logging libraries, such as libbase, first check loggability, then format their buffers, then pass the message to liblog via this function, and therefore we do not want to duplicate the loggability check here.

Parameters
log_messagethe log message itself, see __android_log_message.

Available since API level 30.