40
40
static ulong sysvar_logging_syslog_threshold_big_resultset= 0;
41
41
static ulong sysvar_logging_syslog_threshold_big_examined= 0;
43
static int syslog_facility= -1;
44
static int syslog_priority= -1;
46
43
/* stolen from mysys/my_getsystime
47
44
until the Session has a good utime "now" we can use
48
45
will have to use this instead */
65
62
class Logging_syslog: public Logging_handler
69
Logging_syslog() : Logging_handler("Logging_syslog") {}
70
Logging_syslog() : Logging_handler("Logging_syslog"), syslog_facility(-1), syslog_priority(-1)
73
for (int ndx= 0; facilitynames[ndx].c_name; ndx++)
75
if (strcasecmp(facilitynames[ndx].c_name, sysvar_logging_syslog_facility) == 0)
77
syslog_facility= facilitynames[ndx].c_val;
81
if (syslog_facility == -1)
83
errmsg_printf(ERRMSG_LVL_WARN,
84
_("syslog facility \"%s\" not known, using \"local0\""),
85
sysvar_logging_syslog_facility);
86
syslog_facility= LOG_LOCAL0;
89
for (int ndx= 0; prioritynames[ndx].c_name; ndx++)
91
if (strcasecmp(prioritynames[ndx].c_name, sysvar_logging_syslog_priority) == 0)
93
syslog_priority= prioritynames[ndx].c_val;
97
if (syslog_priority == -1)
99
errmsg_printf(ERRMSG_LVL_WARN,
100
_("syslog priority \"%s\" not known, using \"info\""),
101
sysvar_logging_syslog_priority);
102
syslog_priority= LOG_INFO;
105
openlog(sysvar_logging_syslog_ident,
106
LOG_PID, syslog_facility);
71
114
virtual bool post (Session *session)
110
153
" query=\"%.*s\""
111
154
" command=\"%.*s\""
112
155
" t_connect=%lld t_start=%lld t_lock=%lld"
113
" rows_sent=%ld rows_examined=%ld\n",
156
" rows_sent=%ld rows_examined=%ld"
157
" tmp_table=%ld total_warn_count=%ld\n",
114
158
(unsigned long) session->thread_id,
115
159
(unsigned long) session->query_id,
121
165
(unsigned long long) (t_mark - session->start_utime),
122
166
(unsigned long long) (t_mark - session->utime_after_lock),
123
167
(unsigned long) session->sent_row_count,
124
(unsigned long) session->examined_row_count);
127
syslog(syslog_priority,
128
"thread_id=%ld query_id=%ld"
132
" t_connect=%lld t_start=%lld t_lock=%lld"
133
" rows_sent=%ld rows_examined=%ld\n",
134
(unsigned long) session->thread_id,
135
(unsigned long) session->query_id,
136
session->db_length, session->db,
137
// dont need to quote the query, because syslog does it itself
138
session->query_length, session->query,
139
(int) command_name[session->command].length,
140
command_name[session->command].str,
141
(unsigned long long) (t_mark - session->connect_utime),
142
(unsigned long long) (t_mark - session->start_utime),
143
(unsigned long long) (t_mark - session->utime_after_lock),
144
(unsigned long) session->sent_row_count,
145
(unsigned long) session->examined_row_count);
168
(unsigned long) session->examined_row_count,
169
(unsigned long) session->tmp_table,
170
(unsigned long) session->total_warn_count);
155
178
static int logging_syslog_plugin_init(PluginRegistry ®istry)
158
for (int ndx= 0; facilitynames[ndx].c_name; ndx++)
160
if (strcasecmp(facilitynames[ndx].c_name, sysvar_logging_syslog_facility) == 0)
162
syslog_facility= facilitynames[ndx].c_val;
166
if (syslog_facility == -1)
168
errmsg_printf(ERRMSG_LVL_WARN,
169
_("syslog facility \"%s\" not known, using \"local0\""),
170
sysvar_logging_syslog_facility);
171
syslog_facility= LOG_LOCAL0;
175
for (int ndx= 0; prioritynames[ndx].c_name; ndx++)
177
if (strcasecmp(prioritynames[ndx].c_name, sysvar_logging_syslog_priority) == 0)
179
syslog_priority= prioritynames[ndx].c_val;
183
if (syslog_priority == -1)
185
errmsg_printf(ERRMSG_LVL_WARN,
186
_("syslog priority \"%s\" not known, using \"info\""),
187
sysvar_logging_syslog_priority);
188
syslog_priority= LOG_INFO;
191
openlog(sysvar_logging_syslog_ident,
192
LOG_PID, syslog_facility);
194
180
handler= new Logging_syslog();
195
181
registry.add(handler);