diff options
author | Alexey Botchkov <holyfoot@askmonty.org> | 2012-03-24 11:24:20 +0100 |
---|---|---|
committer | Alexey Botchkov <holyfoot@askmonty.org> | 2012-03-24 11:24:20 +0100 |
commit | 5c01f1ac1498a9b32bdccb817cdbc0b3ca3687d6 (patch) | |
tree | fe8eb54f1eaff9a41fe617b35356f5bd3e35746b /include | |
parent | 619f67b1b4694add244377a0cb2507a035ebd306 (diff) | |
download | mariadb-git-5c01f1ac1498a9b32bdccb817cdbc0b3ca3687d6.tar.gz |
MDEV-15 Log all sql errors.
modified for MySQL 5.5. Logger service moved to the
plugin/sql_errlog directory to be properly used later.
plugin/sql_errlog/sql_errlog.c:
Fixes for bugs #956427 (SQL_ERROR_LOG plugin produces bogus warnings about sql-error-log-size-limit value) and #956463 (Server crashes if SQL_ERROR_LOG fails to initialize) they're also MDEV-184 and MDEV-183
The sql_error_log_deinit() should be prepared for the logger_file to be NULL.
The logger_file_size_limit upper limit wasn't properly set.
Diffstat (limited to 'include')
-rw-r--r-- | include/mysql/plugin_audit.h.pp | 18 | ||||
-rw-r--r-- | include/mysql/plugin_auth.h.pp | 18 | ||||
-rw-r--r-- | include/mysql/plugin_ftparser.h.pp | 18 | ||||
-rw-r--r-- | include/mysql/service_logger.h | 98 | ||||
-rw-r--r-- | include/mysql/services.h | 1 | ||||
-rw-r--r-- | include/service_versions.h | 1 |
6 files changed, 0 insertions, 154 deletions
diff --git a/include/mysql/plugin_audit.h.pp b/include/mysql/plugin_audit.h.pp index dd7dde7973c..cdd9324a5f7 100644 --- a/include/mysql/plugin_audit.h.pp +++ b/include/mysql/plugin_audit.h.pp @@ -80,24 +80,6 @@ void thd_progress_next_stage(void* thd); void thd_progress_end(void* thd); const char *set_thd_proc_info(void*, const char * info, const char *func, const char *file, unsigned int line); -#include <mysql/service_logger.h> -typedef struct logger_handle_st LOGGER_HANDLE; -extern struct logger_service_st { - LOGGER_HANDLE* (*open)(const char *path, - unsigned long long size_limit, - unsigned int rotations); - int (*close)(LOGGER_HANDLE *log); - int (*vprintf)(LOGGER_HANDLE *log, const char *fmt, va_list argptr); - int (*printf)(LOGGER_HANDLE *log, const char *fmt, ...); - int (*rotate)(LOGGER_HANDLE *log); -} *logger_service; - LOGGER_HANDLE *logger_open(const char *path, - unsigned long long size_limit, - unsigned int rotations); - int logger_close(LOGGER_HANDLE *log); - int logger_vprintf(LOGGER_HANDLE *log, const char *fmt, va_list argptr); - int logger_rotate(LOGGER_HANDLE *log); - int logger_printf(LOGGER_HANDLE *log, const char *fmt, ...); struct st_mysql_xid { long formatID; long gtrid_length; diff --git a/include/mysql/plugin_auth.h.pp b/include/mysql/plugin_auth.h.pp index cf3b60d128b..e06494746dd 100644 --- a/include/mysql/plugin_auth.h.pp +++ b/include/mysql/plugin_auth.h.pp @@ -80,24 +80,6 @@ void thd_progress_next_stage(void* thd); void thd_progress_end(void* thd); const char *set_thd_proc_info(void*, const char * info, const char *func, const char *file, unsigned int line); -#include <mysql/service_logger.h> -typedef struct logger_handle_st LOGGER_HANDLE; -extern struct logger_service_st { - LOGGER_HANDLE* (*open)(const char *path, - unsigned long long size_limit, - unsigned int rotations); - int (*close)(LOGGER_HANDLE *log); - int (*vprintf)(LOGGER_HANDLE *log, const char *fmt, va_list argptr); - int (*printf)(LOGGER_HANDLE *log, const char *fmt, ...); - int (*rotate)(LOGGER_HANDLE *log); -} *logger_service; - LOGGER_HANDLE *logger_open(const char *path, - unsigned long long size_limit, - unsigned int rotations); - int logger_close(LOGGER_HANDLE *log); - int logger_vprintf(LOGGER_HANDLE *log, const char *fmt, va_list argptr); - int logger_rotate(LOGGER_HANDLE *log); - int logger_printf(LOGGER_HANDLE *log, const char *fmt, ...); struct st_mysql_xid { long formatID; long gtrid_length; diff --git a/include/mysql/plugin_ftparser.h.pp b/include/mysql/plugin_ftparser.h.pp index 14129aec85e..a990c62e8e9 100644 --- a/include/mysql/plugin_ftparser.h.pp +++ b/include/mysql/plugin_ftparser.h.pp @@ -80,24 +80,6 @@ void thd_progress_next_stage(void* thd); void thd_progress_end(void* thd); const char *set_thd_proc_info(void*, const char * info, const char *func, const char *file, unsigned int line); -#include <mysql/service_logger.h> -typedef struct logger_handle_st LOGGER_HANDLE; -extern struct logger_service_st { - LOGGER_HANDLE* (*open)(const char *path, - unsigned long long size_limit, - unsigned int rotations); - int (*close)(LOGGER_HANDLE *log); - int (*vprintf)(LOGGER_HANDLE *log, const char *fmt, va_list argptr); - int (*printf)(LOGGER_HANDLE *log, const char *fmt, ...); - int (*rotate)(LOGGER_HANDLE *log); -} *logger_service; - LOGGER_HANDLE *logger_open(const char *path, - unsigned long long size_limit, - unsigned int rotations); - int logger_close(LOGGER_HANDLE *log); - int logger_vprintf(LOGGER_HANDLE *log, const char *fmt, va_list argptr); - int logger_rotate(LOGGER_HANDLE *log); - int logger_printf(LOGGER_HANDLE *log, const char *fmt, ...); struct st_mysql_xid { long formatID; long gtrid_length; diff --git a/include/mysql/service_logger.h b/include/mysql/service_logger.h deleted file mode 100644 index 47a478ef5b4..00000000000 --- a/include/mysql/service_logger.h +++ /dev/null @@ -1,98 +0,0 @@ -/* Copyright (C) 2012 Monty Program Ab - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; version 2 of the License. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ - -#ifndef MYSQL_SERVICE_LOGGER_INCLUDED -#define MYSQL_SERVICE_LOGGER_INCLUDED - -#ifndef MYSQL_ABI_CHECK -#include <stdarg.h> -#endif - -/** - @file - logger service - - Log file with rotation implementation. - - This service implements logging with possible rotation - of the log files. Interface intentionally tries to be similar to FILE* - related functions. - - So that one can open the log with logger_open(), specifying - the limit on the logfile size and the rotations number. - - Then it's possible to write messages to the log with - logger_printf or logger_vprintf functions. - - As the size of the logfile grows over the specified limit, - it is renamed to 'logfile.1'. The former 'logfile.1' becomes - 'logfile.2', etc. The file 'logfile.rotations' is removed. - That's how the rotation works. - - The rotation can be forced with the logger_rotate() call. - - Finally the log should be closed with logger_close(). - -@notes: - Implementation checks the size of the log file before it starts new - printf into it. So the size of the file gets over the limit when it rotates. - - The access is secured with the mutex, so the log is threadsafe. -*/ - - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct logger_handle_st LOGGER_HANDLE; - -extern struct logger_service_st { - LOGGER_HANDLE* (*open)(const char *path, - unsigned long long size_limit, - unsigned int rotations); - int (*close)(LOGGER_HANDLE *log); - int (*vprintf)(LOGGER_HANDLE *log, const char *fmt, va_list argptr); - int (*printf)(LOGGER_HANDLE *log, const char *fmt, ...); - int (*rotate)(LOGGER_HANDLE *log); -} *logger_service; - -#ifdef MYSQL_DYNAMIC_PLUGIN - -#define logger_open(path, size_limit, rotations) \ - (logger_service->open(path, size_limit, rotations)) -#define logger_close(log) (logger_service->close(log)) -#define logger_rotate(log) (logger_service->rotate(log)) -#define logger_vprintf(log, fmt, argptr) (logger_service->\ - vprintf(log, fmt, argptr)) -#define logger_printf logger_service->printf -#else - - LOGGER_HANDLE *logger_open(const char *path, - unsigned long long size_limit, - unsigned int rotations); - int logger_close(LOGGER_HANDLE *log); - int logger_vprintf(LOGGER_HANDLE *log, const char *fmt, va_list argptr); - int logger_rotate(LOGGER_HANDLE *log); - int logger_printf(LOGGER_HANDLE *log, const char *fmt, ...); -#endif - - -#ifdef __cplusplus -} -#endif - -#endif /*MYSQL_SERVICE_LOGGER_INCLUDED*/ - diff --git a/include/mysql/services.h b/include/mysql/services.h index 258f7b90658..dd0fa58db89 100644 --- a/include/mysql/services.h +++ b/include/mysql/services.h @@ -23,7 +23,6 @@ extern "C" { #include <mysql/service_thd_wait.h> #include <mysql/service_thread_scheduler.h> #include <mysql/service_progress_report.h> -#include <mysql/service_logger.h> #ifdef __cplusplus diff --git a/include/service_versions.h b/include/service_versions.h index 8a397d71b12..ee50d4856e9 100644 --- a/include/service_versions.h +++ b/include/service_versions.h @@ -24,4 +24,3 @@ #define VERSION_thd_wait 0x0100 #define VERSION_my_thread_scheduler 0x0100 #define VERSION_progress_report 0x0100 -#define VERSION_logger 0x0100 |