![]() |
MySQL 8.0.43
Source Code Documentation
|
#include <mysql/components/services/log_builtins.h>#include <mysql/components/services/log_shared.h>#include <mysql/components/services/log_sink_perfschema.h>#include <string>#include "log_service_imp.h"#include "my_compiler.h"#include "my_rapidjson_size_t.h"#include <rapidjson/document.h>Classes | |
| struct | my_state |
Macros | |
| #define | WITH_PFS_SUPPORT |
| This is a "modern" log writer, i.e. More... | |
| #define | WITH_LOG_PARSER |
| #define | LOG_EXT ".json" |
| Log-file extension. More... | |
| #define | MY_RAPID_INT(key, val, dflt) |
| #define | MY_RAPID_STR(key, val, len) |
Enumerations | |
| enum | enum_log_json_pretty_print { JSON_NOSPACE = 0 , JSON_PAD = 1 , JSON_MULTILINE = 2 } |
| Pretty-print (with indents and line-breaks between key/value pairs), or one event per line? jq for example doesn't mind, but we play it safe by defaulting to the latter; this is also the format that "journalctl -o json" renders on platforms that use systemd's journal. More... | |
Functions | |
| REQUIRES_SERVICE_PLACEHOLDER (log_builtins) | |
| REQUIRES_SERVICE_PLACEHOLDER (log_builtins_string) | |
| REQUIRES_SERVICE_PLACEHOLDER (log_sink_perfschema) | |
| static log_service_error | get_json_log_name (void *instance, char *buf, size_t bufsize) |
| mysql_service_status_t | log_service_exit () |
| De-initialization method for Component used when unloading the Component. More... | |
| mysql_service_status_t | log_service_init () |
| Initialization entry method for Component used when loading the Component. More... | |
| PROVIDES_SERVICE (log_sink_json, log_service) | |
| END_COMPONENT_PROVIDES () | |
| REQUIRES_SERVICE (log_builtins) | |
| REQUIRES_SERVICE (log_builtins_string) | |
| REQUIRES_SERVICE (log_sink_perfschema) | |
| END_COMPONENT_REQUIRES () | |
| METADATA ("mysql.author", "Oracle Corporation") | |
| METADATA ("mysql.license", "GPL") | |
| METADATA ("log_service_type", "sink") | |
| END_COMPONENT_METADATA () | |
Variables | |
| const mysql_service_log_builtins_t * | log_bi = nullptr |
| accessor built-ins More... | |
| const mysql_service_log_builtins_string_t * | log_bs = nullptr |
| string built-ins More... | |
| const mysql_service_log_sink_perfschema_t * | log_ps = nullptr |
| static bool | inited = false |
| static int | opened = 0 |
| static enum_log_json_pretty_print | pretty = JSON_PAD |
| const mysql_service_log_service_t | imp_log_sink_json_log_service |
| mysql_component_t | mysql_component_log_sink_json |
| #define LOG_EXT ".json" |
Log-file extension.
| #define MY_RAPID_INT | ( | key, | |
| val, | |||
| dflt | |||
| ) |
| #define MY_RAPID_STR | ( | key, | |
| val, | |||
| len | |||
| ) |
| #define WITH_LOG_PARSER |
| #define WITH_PFS_SUPPORT |
This is a "modern" log writer, i.e.
it doesn't care what type a log_item on an error log event is; as long as it's one of the wellknown classes (string, float, int), it can and will write it.
By default, each line will contain one log event, in a format somewhat similar to that emitted by "journalctl -o json" on platforms that use systemd's journal:
{ "prio" : 2, "err_code" : 3581, "msg" : "Parser saw: SET @@global.log_error_filter_rules= DEFAULT", "err_symbol" : "ER_PARSER_TRACE", "label" : "Note" } { "prio" : 2, "err_code" : 3581, "subsystem" : "parser", "SQL_state" : "XX999", "source_file" : "sql_parse", "function" : "dispatch_command", "msg" : "Parser saw: SELECT \"logging as traditional MySQL error log and as JSON"", "time" : "1970-01-01T00:00:00.000000Z", "thread" : 0, "err_symbol" : "ER_PARSER_TRACE", "label" : "Note" }
Pretty-print (with indents and line-breaks between key/value pairs), or one event per line? jq for example doesn't mind, but we play it safe by defaulting to the latter; this is also the format that "journalctl -o json" renders on platforms that use systemd's journal.
| Enumerator | |
|---|---|
| JSON_NOSPACE | emit no whitespace padding |
| JSON_PAD | similar to systemd's journal |
| JSON_MULTILINE | multi-line pretty-print |
| END_COMPONENT_METADATA | ( | ) |
| END_COMPONENT_PROVIDES | ( | ) |
| END_COMPONENT_REQUIRES | ( | ) |
|
static |
| mysql_service_status_t log_service_exit | ( | ) |
De-initialization method for Component used when unloading the Component.
| false | success |
| true | failure |
| mysql_service_status_t log_service_init | ( | ) |
Initialization entry method for Component used when loading the Component.
| false | success |
| true | failure |
| METADATA | ( | "log_service_type" | , |
| "sink" | |||
| ) |
| METADATA | ( | "mysql.author" | , |
| "Oracle Corporation" | |||
| ) |
| METADATA | ( | "mysql.license" | , |
| "GPL" | |||
| ) |
| PROVIDES_SERVICE | ( | log_sink_json | , |
| log_service | |||
| ) |
| REQUIRES_SERVICE | ( | log_builtins | ) |
| REQUIRES_SERVICE | ( | log_builtins_string | ) |
| REQUIRES_SERVICE | ( | log_sink_perfschema | ) |
| REQUIRES_SERVICE_PLACEHOLDER | ( | log_builtins | ) |
| REQUIRES_SERVICE_PLACEHOLDER | ( | log_builtins_string | ) |
| REQUIRES_SERVICE_PLACEHOLDER | ( | log_sink_perfschema | ) |
| const mysql_service_log_service_t imp_log_sink_json_log_service |
|
static |
| const mysql_service_log_builtins_t* log_bi = nullptr |
accessor built-ins
| const mysql_service_log_builtins_string_t* log_bs = nullptr |
string built-ins
| const mysql_service_log_sink_perfschema_t* log_ps = nullptr |
| mysql_component_t mysql_component_log_sink_json |
|
static |
|
static |