23#ifndef LOG_BUILTINS_IMP_H
24#define LOG_BUILTINS_IMP_H
53#define LOG_BUILTINS_FILTER "log_filter_internal"
59#define LOG_BUILTINS_SINK "log_sink_internal"
64#define LOG_ERROR_SERVICES_DEFAULT LOG_BUILTINS_FILTER "; " LOG_BUILTINS_SINK
137 (
const char *
file,
void **my_errstream));
140 (
void *my_errstream,
const char *
buffer,
size_t length));
145 (
void **my_errstream));
148 (
const char *
file,
void **my_errstream));
164 (
const char *a,
const char *b,
size_t len,
165 bool case_insensitive));
168 (
char *to,
size_t n,
const char *fmt, va_list ap))
169 MY_ATTRIBUTE((format(printf, 3, 0)));
172 (
char *to,
size_t n,
const char *fmt, ...))
173 MY_ATTRIBUTE((format(printf, 3, 4)));
182 (
void *thd, uint severity, uint code,
char *to,
size_t n,
183 const char *format, ...))
184 MY_ATTRIBUTE((format(printf, 6, 7)));
193 (
const char *
name,
int option,
int facility));
195 (
enum loglevel level,
const char *msg));
Primitives for services to interact with the structured logger: functions pertaining to log_line and ...
Definition: log_builtins_imp.h:72
static log_item * line_item_iter_first(log_item_iter *it) noexcept
Use the log_line iterator to get the first item from the set.
Definition: log_builtins.cc:2665
static log_item_iter * line_item_iter_acquire(log_line *ll) noexcept
Get an iterator for the items in a log_line.
Definition: log_builtins.cc:2632
static int item_inconsistent(log_item *li) noexcept
Sanity check an item.
Definition: log_builtins.cc:2319
static longlong errcode_by_errsymbol(const char *sym) noexcept
Return MySQL error code for a given error symbol.
Definition: log_builtins.cc:2881
static bool item_string_class(log_item_class c) noexcept
Predicate used to determine whether a class is a string class (C-string or Lex-string).
Definition: log_builtins.cc:2346
static log_item_data * item_set(log_item *li, log_item_type t) noexcept
As log_item_set_with_key(), except that the key is automatically derived from the wellknown log_item_...
Definition: log_builtins.cc:2488
static int line_submit(log_line *ll) noexcept
Complete, filter, and write submitted log items.
Definition: log_builtins.cc:2735
static log_item * line_item_iter_next(log_item_iter *it) noexcept
Use the log_line iterator to get the next item from the set.
Definition: log_builtins.cc:2684
static int dedicated_errstream(void *my_errstream) noexcept
Are we writing to a dedicated errstream, or are we sharing it?
Definition: log_builtins.cc:3127
static log_service_error open_errstream(const char *file, void **my_errstream) noexcept
Open an error log file.
Definition: log_builtins.cc:3009
static bool item_set_lexstring(log_item_data *lid, const char *s, size_t s_len) noexcept
Definition: log_builtins.cc:2396
static log_item * line_get_output_buffer(log_line *ll) noexcept
Get log-line's output buffer.
Definition: log_builtins.cc:2619
static int wellknown_by_name(const char *key, size_t length) noexcept
See whether a string is a wellknown field name.
Definition: log_builtins.cc:2273
static log_service_error write_errstream(void *my_errstream, const char *buffer, size_t length) noexcept
Write to an error log file previously opened with open_errstream().
Definition: log_builtins.cc:3102
static const char * wellknown_get_name(uint i) noexcept
Accessor: from a record describing a wellknown key, get its name.
Definition: log_builtins.cc:2295
static int sanitize(log_item *li) noexcept
Definition: log_builtins.cc:2794
static bool item_generic_type(log_item_type t) noexcept
Predicate used to determine whether a type is generic (generic string, generic float,...
Definition: log_builtins.cc:2333
static bool item_numeric_class(log_item_class c) noexcept
Predicate used to determine whether a class is a numeric class (integer or float).
Definition: log_builtins.cc:2359
static log_service_error close_errstream(void **my_errstream) noexcept
Close an error log file previously opened with open_errstream() (wrapper for the component system).
Definition: log_builtins.cc:3190
static log_item_data * item_set_with_key(log_item *li, log_item_type t, const char *key, uint32 alloc) noexcept
Create new log item with key name "key", and allocation flags of "alloc" (see enum_log_item_free).
Definition: log_builtins.cc:2452
static int message(int log_type,...) noexcept
Submit a log-message for log "log_type".
Definition: log_builtins.cc:2774
static const char * label_from_prio(int prio) noexcept
Convenience function: Derive a log label ("error", "warning", "information") from a severity.
Definition: log_builtins.cc:2896
static bool item_set_cstring(log_item_data *lid, const char *s) noexcept
Set a string value on a log_item.
Definition: log_builtins.cc:2412
static log_line * line_init() noexcept
Dynamically allocate and initialize a log_line.
Definition: log_builtins.cc:2568
static void line_item_iter_release(log_item_iter *it) noexcept
Release an iterator for the items in a log_line.
Definition: log_builtins.cc:2650
static bool item_set_int(log_item_data *lid, longlong i) noexcept
Set an integer value on a log_item.
Definition: log_builtins.cc:2375
static void line_exit(log_line *ll) noexcept
Release a log_line allocated with line_init()
Definition: log_builtins.cc:2577
static ulonglong parse_iso8601_timestamp(const char *timestamp, size_t len) noexcept
Parse a ISO8601 timestamp and return the number of microseconds since the epoch.
Definition: log_builtins.cc:2912
static bool item_set_float(log_item_data *lid, double f) noexcept
Set a floating point value on a log_item.
Definition: log_builtins.cc:2391
static log_item_data * line_item_set_with_key(log_line *ll, log_item_type t, const char *key, uint32 alloc) noexcept
Create new log item in log line "ll", with key name "key", and allocation flags of "alloc" (see enum_...
Definition: log_builtins.cc:2527
static const char * errmsg_by_errcode(int mysql_errcode) noexcept
Return MySQL error message for a given error code.
Definition: log_builtins.cc:2868
static log_item_type_mask line_item_types_seen(log_line *ll, log_item_type_mask m) noexcept
Test whether a given type is presumed present on the log line.
Definition: log_builtins.cc:2602
static int line_item_count(log_line *ll) noexcept
How many items are currently set on the given log_line?
Definition: log_builtins.cc:2588
static log_service_error reopen_errstream(const char *file, void **my_errstream) noexcept
Re-open an error log file (primarily to facilitate flush/log-rotation)
Definition: log_builtins.cc:3224
static log_item_data * line_item_set(log_line *ll, log_item_type t) noexcept
Create a new log item of well-known type "t" in log line "ll".
Definition: log_builtins.cc:2558
static int wellknown_by_type(log_item_type t) noexcept
See whether a type is wellknown.
Definition: log_builtins.cc:2258
static log_item * line_item_iter_current(log_item_iter *it) noexcept
Use the log_line iterator to get the current item from the set.
Definition: log_builtins.cc:2704
static log_item_type wellknown_get_type(uint i) noexcept
Accessor: from a record describing a wellknown key, get its type.
Definition: log_builtins.cc:2284
String primitives for logging services.
Definition: log_builtins_imp.h:154
static size_t length(const char *s) noexcept
Wrapper for strlen(): length of a nul-terminated byte string.
Definition: log_builtins.cc:3326
static size_t substitutev(char *to, size_t n, const char *fmt, va_list ap) noexcept
Wrapper for vsnprintf(): Replace all % in format string with variables from list.
Definition: log_builtins.cc:3386
static char * find_last(const char *s, int c) noexcept
Wrapper for strrchr(): find character in string, from the right.
Definition: log_builtins.cc:3342
static char * strndup(const char *fm, size_t len) noexcept
Wrapper for my_strndup(): Alloc (len+1) bytes, then copy len bytes from fm, and \0 terminate.
Definition: log_builtins.cc:3312
static int compare(const char *a, const char *b, size_t len, bool case_insensitive) noexcept
Compare two NUL-terminated byte strings.
Definition: log_builtins.cc:3370
static size_t substitute(char *to, size_t n, const char *fmt,...) noexcept
Wrapper for vsnprintf(): Replace all % in format string with variables from list.
Definition: log_builtins.cc:3395
static void * malloc(size_t len) noexcept
Wrapper for my_malloc(): Alloc (len+1) bytes.
Definition: log_builtins.cc:3299
static void free(void *ptr) noexcept
Wrapper for my_free(): free allocated memory.
Definition: log_builtins.cc:3319
static char * find_first(const char *s, int c) noexcept
Wrapper for strchr(): find character in string, from the left.
Definition: log_builtins.cc:3334
Syslog/Eventlog functions for logging services.
Definition: log_builtins_imp.h:190
static log_service_error open(const char *name, int option, int facility) noexcept
Wrapper for mysys' my_openlog.
Definition: log_builtins.cc:3452
static log_service_error close(void) noexcept
Wrapper for mysys' my_closelog.
Definition: log_builtins.cc:3503
static log_service_error write(enum loglevel level, const char *msg) noexcept
Wrapper for mysys' my_syslog.
Definition: log_builtins.cc:3486
Temporary primitives for logging services.
Definition: log_builtins_imp.h:179
static size_t notify_client(void *thd, uint severity, uint code, char *to, size_t n, const char *format,...) noexcept
Definition: log_builtins.cc:3412
enum enum_log_service_error log_service_error
Error codes.
enum enum_log_item_class log_item_class
enum enum_log_item_type log_item_type
item_type – what to log
uint64 log_item_type_mask
a bit mask of log_types.
Definition: log_shared.h:215
static int log_type
Definition: mi_log.cc:46
unsigned long long int ulonglong
Definition: my_inttypes.h:55
long long int longlong
Definition: my_inttypes.h:54
uint32_t uint32
Definition: my_inttypes.h:66
loglevel
Definition: my_loglevel.h:40
constexpr value_type timestamp
Definition: classic_protocol_constants.h:277
bool length(const dd::Spatial_reference_system *srs, const Geometry *g1, double *length, bool *null) noexcept
Computes the length of linestrings and multilinestrings.
Definition: length.cc:75
mutable_buffer buffer(void *p, size_t n) noexcept
Definition: buffer.h:417
required string key
Definition: replication_asynchronous_connection_failover.proto:59
#define DEFINE_METHOD(retval, name, args)
A macro to ensure method implementation has required properties, that is it does not throw exceptions...
Definition: service_implementation.h:78
case opt name
Definition: sslopt-case.h:32
Iterator over the key/value pairs of a log_line.
Definition: keyring_log_builtins_definition.cc:63
Definition: log_shared.h:195
log_line ("log event")
Definition: keyring_log_builtins_definition.cc:71
Definition: log_shared.h:184
int n
Definition: xcom_base.cc:508