Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
MariaDB
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
MariaDB
Commits
a0f4c0ce
Commit
a0f4c0ce
authored
Jan 27, 2006
by
petr@mysql.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Use one option --log-output[=option[,option...]]
instead of current --old-log-format and --both-log-formats options
parent
86096789
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
102 additions
and
87 deletions
+102
-87
mysql-test/mysql-test-run.pl
mysql-test/mysql-test-run.pl
+1
-1
mysql-test/r/im_utils.result
mysql-test/r/im_utils.result
+2
-2
sql/log.cc
sql/log.cc
+38
-29
sql/log.h
sql/log.h
+10
-14
sql/mysqld.cc
sql/mysqld.cc
+51
-41
No files found.
mysql-test/mysql-test-run.pl
View file @
a0f4c0ce
...
...
@@ -1832,7 +1832,7 @@ EOF
;
print
OUT
"
nonguarded
\n
"
if
$instance
->
{'
nonguarded
'};
print
OUT
"
old-log-format
\n
"
if
$instance
->
{'
old_log_format
'};
print
OUT
"
log-output=FILE
\n
"
if
$instance
->
{'
old_log_format
'};
print
OUT
"
\n
";
}
...
...
mysql-test/r/im_utils.result
View file @
a0f4c0ce
...
...
@@ -21,7 +21,7 @@ skip-stack-trace VALUE
skip-innodb VALUE
skip-bdb VALUE
skip-ndbcluster VALUE
old-log-forma
t VALUE
log-outpu
t VALUE
SHOW INSTANCE OPTIONS mysqld2;
option_name value
instance_name VALUE
...
...
@@ -42,7 +42,7 @@ skip-stack-trace VALUE
skip-innodb VALUE
skip-bdb VALUE
skip-ndbcluster VALUE
old-log-forma
t VALUE
log-outpu
t VALUE
START INSTANCE mysqld2;
STOP INSTANCE mysqld2;
SHOW mysqld1 LOG FILES;
...
...
sql/log.cc
View file @
a0f4c0ce
...
...
@@ -596,7 +596,7 @@ void LOGGER::init_base()
file_log_handler
=
new
Log_to_file_event_handler
;
/* by default we use traditional error log */
init_error_log
(
L
EGACY
);
init_error_log
(
L
OG_FILE
);
file_log_handler
->
init_pthread_objects
();
(
void
)
pthread_mutex_init
(
&
LOCK_logger
,
MY_MUTEX_INIT_SLOW
);
...
...
@@ -804,41 +804,47 @@ bool LOGGER::general_log_print(THD *thd, enum enum_server_command command,
return
error
;
}
void
LOGGER
::
init_error_log
(
enum
enum_printer
error_log_printer
)
void
LOGGER
::
init_error_log
(
uint
error_log_printer
)
{
switch
(
error_log_printer
)
{
case
NONE
:
if
(
error_log_printer
&
LOG_NONE
)
{
error_log_handler_list
[
0
]
=
0
;
break
;
case
LEGACY
:
return
;
}
switch
(
error_log_printer
)
{
case
LOG_FILE
:
error_log_handler_list
[
0
]
=
file_log_handler
;
error_log_handler_list
[
1
]
=
0
;
break
;
/* these two are disabled for now */
case
CSV
:
case
LOG_TABLE
:
DBUG_ASSERT
(
0
);
break
;
case
L
EGACY_AND_CSV
:
case
L
OG_TABLE
|
LOG_FILE
:
DBUG_ASSERT
(
0
);
break
;
}
}
void
LOGGER
::
init_slow_log
(
enum
enum_printer
slow_log_printer
)
void
LOGGER
::
init_slow_log
(
uint
slow_log_printer
)
{
switch
(
slow_log_printer
)
{
case
NONE
:
if
(
slow_log_printer
&
LOG_NONE
)
{
slow_log_handler_list
[
0
]
=
0
;
break
;
case
LEGACY
:
return
;
}
switch
(
slow_log_printer
)
{
case
LOG_FILE
:
slow_log_handler_list
[
0
]
=
file_log_handler
;
slow_log_handler_list
[
1
]
=
0
;
break
;
case
CSV
:
case
LOG_TABLE
:
slow_log_handler_list
[
0
]
=
table_log_handler
;
slow_log_handler_list
[
1
]
=
0
;
break
;
case
L
EGACY_AND_CSV
:
case
L
OG_TABLE
|
LOG_FILE
:
slow_log_handler_list
[
0
]
=
file_log_handler
;
slow_log_handler_list
[
1
]
=
table_log_handler
;
slow_log_handler_list
[
2
]
=
0
;
...
...
@@ -846,21 +852,24 @@ void LOGGER::init_slow_log(enum enum_printer slow_log_printer)
}
}
void
LOGGER
::
init_general_log
(
enum
enum_printer
general_log_printer
)
void
LOGGER
::
init_general_log
(
uint
general_log_printer
)
{
switch
(
general_log_printer
)
{
case
NONE
:
if
(
general_log_printer
&
LOG_NONE
)
{
general_log_handler_list
[
0
]
=
0
;
break
;
case
LEGACY
:
return
;
}
switch
(
general_log_printer
)
{
case
LOG_FILE
:
general_log_handler_list
[
0
]
=
file_log_handler
;
general_log_handler_list
[
1
]
=
0
;
break
;
case
CSV
:
case
LOG_TABLE
:
general_log_handler_list
[
0
]
=
table_log_handler
;
general_log_handler_list
[
1
]
=
0
;
break
;
case
L
EGACY_AND_CSV
:
case
L
OG_TABLE
|
LOG_FILE
:
general_log_handler_list
[
0
]
=
file_log_handler
;
general_log_handler_list
[
1
]
=
table_log_handler
;
general_log_handler_list
[
2
]
=
0
;
...
...
@@ -891,20 +900,20 @@ bool Log_to_csv_event_handler::init()
return
(
open_log_table
(
QUERY_LOG_GENERAL
)
||
open_log_table
(
QUERY_LOG_SLOW
));
}
int
LOGGER
::
set_handlers
(
enum
enum_printer
error_log_printer
,
enum
enum_printer
slow_log_printer
,
enum
enum_printer
general_log_printer
)
int
LOGGER
::
set_handlers
(
uint
error_log_printer
,
uint
slow_log_printer
,
uint
general_log_printer
)
{
/* error log table is not supported yet */
DBUG_ASSERT
(
error_log_printer
<
CSV
);
DBUG_ASSERT
(
error_log_printer
<
LOG_TABLE
);
lock
();
if
((
slow_log_printer
>=
CSV
||
general_log_printer
>=
CSV
)
&&
if
((
slow_log_printer
&
LOG_TABLE
||
general_log_printer
&
LOG_TABLE
)
&&
!
is_log_tables_initialized
)
{
slow_log_printer
=
LEGACY
;
general_log_printer
=
LEGACY
;
slow_log_printer
=
(
slow_log_printer
&
~
LOG_TABLE
)
|
LOG_FILE
;
general_log_printer
=
(
general_log_printer
&
~
LOG_TABLE
)
|
LOG_FILE
;
sql_print_error
(
"Failed to initialize log tables. "
"Falling back to the old-fashioned logs"
);
...
...
sql/log.h
View file @
a0f4c0ce
...
...
@@ -138,14 +138,10 @@ typedef struct st_log_info
*/
#define MAX_LOG_HANDLERS_NUM 3
enum
enum_printer
{
NONE
,
LEGACY
,
CSV
,
LEGACY_AND_CSV
};
/* log event handler flags */
#define LOG_NONE 1
#define LOG_FILE 2
#define LOG_TABLE 4
class
Log_event
;
class
Rows_log_event
;
...
...
@@ -491,12 +487,12 @@ class LOGGER
bool
reopen_log_table
(
uint
log_type
);
/* we use this function to setup all enabled log event handlers */
int
set_handlers
(
enum
enum_printer
error_log_printer
,
enum
enum_printer
slow_log_printer
,
enum
enum_printer
general_log_printer
);
void
init_error_log
(
enum
enum_printer
error_log_printer
);
void
init_slow_log
(
enum
enum_printer
slow_log_printer
);
void
init_general_log
(
enum
enum_printer
general_log_printer
);
int
set_handlers
(
uint
error_log_printer
,
uint
slow_log_printer
,
uint
general_log_printer
);
void
init_error_log
(
uint
error_log_printer
);
void
init_slow_log
(
uint
slow_log_printer
);
void
init_general_log
(
uint
general_log_printer
);
};
#endif
/* LOG_H */
sql/mysqld.cc
View file @
a0f4c0ce
...
...
@@ -297,8 +297,16 @@ arg_cmp_func Arg_comparator::comparator_matrix[5][2] =
{
&
Arg_comparator
::
compare_row
,
&
Arg_comparator
::
compare_e_row
},
{
&
Arg_comparator
::
compare_decimal
,
&
Arg_comparator
::
compare_e_decimal
}};
const
char
*
log_output_names
[]
=
{
"NONE"
,
"FILE"
,
"TABLE"
,
NullS
};
TYPELIB
log_output_typelib
=
{
array_elements
(
log_output_names
)
-
1
,
""
,
log_output_names
,
NULL
};
/* static variables */
/* the default log output is log tables */
static
const
char
*
log_output_str
=
"TABLE"
;
static
ulong
log_output_options
=
LOG_TABLE
;
static
bool
lower_case_table_names_used
=
0
;
static
bool
volatile
select_thread_in_use
,
signal_thread_in_use
;
static
bool
volatile
ready_to_exit
;
...
...
@@ -332,9 +340,6 @@ static my_bool opt_sync_bdb_logs;
bool
opt_log
,
opt_update_log
,
opt_bin_log
,
opt_slow_log
;
bool
opt_error_log
=
IF_WIN
(
1
,
0
);
#ifdef WITH_CSV_STORAGE_ENGINE
bool
opt_old_log_format
,
opt_both_log_formats
;
#endif
bool
opt_disable_networking
=
0
,
opt_skip_show_db
=
0
;
my_bool
opt_character_set_client_handshake
=
1
;
bool
server_id_supplied
=
0
;
...
...
@@ -2395,8 +2400,8 @@ pthread_handler_t signal_hand(void *arg __attribute__((unused)))
sql_print_information
(
"Got signal %d to shutdown mysqld"
,
sig
);
#endif
/* switch to the old log message processing */
logger
.
set_handlers
(
L
EGACY
,
opt_slow_log
?
LEGACY
:
NONE
,
opt_log
?
L
EGACY
:
NONE
);
logger
.
set_handlers
(
L
OG_FILE
,
opt_slow_log
?
LOG_FILE
:
LOG_
NONE
,
opt_log
?
L
OG_FILE
:
LOG_
NONE
);
DBUG_PRINT
(
"info"
,(
"Got signal: %d abort_loop: %d"
,
sig
,
abort_loop
));
if
(
!
abort_loop
)
{
...
...
@@ -2425,8 +2430,8 @@ pthread_handler_t signal_hand(void *arg __attribute__((unused)))
(
TABLE_LIST
*
)
0
,
&
not_used
);
// Flush logs
}
/* reenable logs after the options were reloaded */
logger
.
set_handlers
(
L
EGACY
,
opt_slow_log
?
CSV
:
NONE
,
opt_log
?
CSV
:
NONE
);
logger
.
set_handlers
(
L
OG_FILE
,
opt_slow_log
?
LOG_TABLE
:
LOG_
NONE
,
opt_log
?
LOG_TABLE
:
LOG_
NONE
);
break
;
#ifdef USE_ONE_SIGNAL_HAND
case
THR_SERVER_ALARM
:
...
...
@@ -3085,21 +3090,20 @@ static int init_server_components()
#ifdef WITH_CSV_STORAGE_ENGINE
logger
.
init_log_tables
();
if
(
opt_old_log_format
||
(
have_csv_db
!=
SHOW_OPTION_YES
))
logger
.
set_handlers
(
LEGACY
,
opt_slow_log
?
LEGACY
:
NONE
,
opt_log
?
LEGACY
:
NONE
);
else
if
(
opt_both_log_formats
)
logger
.
set_handlers
(
LEGACY
,
opt_slow_log
?
LEGACY_AND_CSV
:
NONE
,
opt_log
?
LEGACY_AND_CSV
:
NONE
);
if
(
log_output_options
&
LOG_NONE
)
logger
.
set_handlers
(
LOG_FILE
,
LOG_NONE
,
LOG_NONE
);
else
/* the default is CSV log tables */
logger
.
set_handlers
(
LEGACY
,
opt_slow_log
?
CSV
:
NONE
,
opt_log
?
CSV
:
NONE
);
{
/* fall back to the log files if tables are not present */
if
(
have_csv_db
==
SHOW_OPTION_NO
)
log_output_options
=
log_output_options
&
~
LOG_TABLE
|
LOG_FILE
;
logger
.
set_handlers
(
LOG_FILE
,
opt_slow_log
?
log_output_options
:
LOG_NONE
,
opt_log
?
log_output_options
:
LOG_NONE
);
}
#else
logger
.
set_handlers
(
L
EGACY
,
opt_slow_log
?
LEGACY
:
NONE
,
opt_log
?
L
EGACY
:
NONE
);
logger
.
set_handlers
(
L
OG_FILE
,
opt_slow_log
?
LOG_FILE
:
LOG_
NONE
,
opt_log
?
L
OG_FILE
:
LOG_
NONE
);
#endif
if
(
opt_update_log
)
...
...
@@ -4676,8 +4680,8 @@ enum options_mysqld
OPT_REPLICATE_IGNORE_TABLE
,
OPT_REPLICATE_WILD_DO_TABLE
,
OPT_REPLICATE_WILD_IGNORE_TABLE
,
OPT_REPLICATE_SAME_SERVER_ID
,
OPT_DISCONNECT_SLAVE_EVENT_COUNT
,
OPT_TC_HEURISTIC_RECOVER
,
OPT_ABORT_SLAVE_EVENT_COUNT
,
OPT_OLD_LOG_FORMAT
,
OPT_BOTH_LOG_FORMATS
,
OPT_INNODB_DATA_HOME_DIR
,
OPT_ABORT_SLAVE_EVENT_COUNT
,
OPT_INNODB_DATA_HOME_DIR
,
OPT_LOG_OUTPUT
,
OPT_INNODB_DATA_FILE_PATH
,
OPT_INNODB_LOG_GROUP_HOME_DIR
,
OPT_INNODB_LOG_ARCH_DIR
,
...
...
@@ -5217,6 +5221,13 @@ Disable with --skip-innodb-doublewrite.", (gptr*) &innobase_use_doublewrite,
{
"log-long-format"
,
'0'
,
"Log some extra information to update log. Please note that this option is deprecated; see --log-short-format option."
,
0
,
0
,
0
,
GET_NO_ARG
,
NO_ARG
,
0
,
0
,
0
,
0
,
0
,
0
},
#ifdef WITH_CSV_STORAGE_ENGINE
{
"log-output"
,
OPT_LOG_OUTPUT
,
"Syntax: log-output[=option[,option...]], where option can be TABLE, "
"FILE or NONE."
,
(
gptr
*
)
&
log_output_str
,
(
gptr
*
)
&
log_output_str
,
0
,
GET_STR
,
OPT_ARG
,
0
,
0
,
0
,
0
,
0
,
0
},
#endif
{
"log-queries-not-using-indexes"
,
OPT_LOG_QUERIES_NOT_USING_INDEXES
,
"Log queries that are executed without benefit of any index to the slow log if it is open."
,
(
gptr
*
)
&
opt_log_queries_not_using_indexes
,
(
gptr
*
)
&
opt_log_queries_not_using_indexes
,
...
...
@@ -5238,16 +5249,6 @@ Disable with --skip-innodb-doublewrite.", (gptr*) &innobase_use_doublewrite,
"Log slow queries to this log file. Defaults logging to hostname-slow.log file. Must be enabled to activate other slow log options."
,
(
gptr
*
)
&
opt_slow_logname
,
(
gptr
*
)
&
opt_slow_logname
,
0
,
GET_STR
,
OPT_ARG
,
0
,
0
,
0
,
0
,
0
,
0
},
#ifdef WITH_CSV_STORAGE_ENGINE
{
"old-log-format"
,
OPT_OLD_LOG_FORMAT
,
"Enable old log file format. (No SELECT * FROM logs)"
,
(
gptr
*
)
&
opt_old_log_format
,
0
,
0
,
GET_BOOL
,
OPT_ARG
,
0
,
0
,
0
,
0
,
0
,
0
},
{
"both-log-formats"
,
OPT_BOTH_LOG_FORMATS
,
"Enable old log file format along with log tables"
,
(
gptr
*
)
&
opt_both_log_formats
,
0
,
0
,
GET_BOOL
,
OPT_ARG
,
0
,
0
,
0
,
0
,
0
,
0
},
#endif
{
"log-tc"
,
OPT_LOG_TC
,
"Path to transaction coordinator log (used for transactions that affect "
"more than one storage engine, when binary log is disabled)"
,
...
...
@@ -6940,10 +6941,6 @@ static void mysql_init_variables(void)
opt_skip_slave_start
=
opt_reckless_slave
=
0
;
mysql_home
[
0
]
=
pidfile_name
[
0
]
=
log_error_file
[
0
]
=
0
;
opt_log
=
opt_update_log
=
opt_slow_log
=
0
;
#ifdef WITH_CSV_STORAGE_ENGINE
opt_old_log_format
=
0
;
opt_both_log_formats
=
0
;
#endif
opt_bin_log
=
0
;
opt_disable_networking
=
opt_skip_show_db
=
0
;
opt_logname
=
opt_update_logname
=
opt_binlog_index_name
=
opt_slow_logname
=
0
;
...
...
@@ -7357,12 +7354,25 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
opt_slow_log
=
1
;
break
;
#ifdef WITH_CSV_STORAGE_ENGINE
case
(
int
)
OPT_OLD_LOG_FORMAT
:
opt_old_log_format
=
1
;
break
;
case
(
int
)
OPT_BOTH_LOG_FORMATS
:
opt_both_log_formats
=
1
;
case
OPT_LOG_OUTPUT
:
{
if
(
!
argument
||
!
argument
[
0
])
{
log_output_options
=
LOG_TABLE
;
log_output_str
=
log_output_typelib
.
type_names
[
1
];
}
else
{
log_output_str
=
argument
;
if
((
log_output_options
=
find_bit_type
(
argument
,
&
log_output_typelib
))
==
~
(
ulong
)
0
)
{
fprintf
(
stderr
,
"Unknown option to log-output: %s
\n
"
,
argument
);
exit
(
1
);
}
}
break
;
}
#endif
case
(
int
)
OPT_SKIP_NEW
:
opt_specialflag
|=
SPECIAL_NO_NEW_FUNC
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment