Planned refactorings/changes:
1) Get rid of MYSQL_LOG class, so that MYSQL_QUERY_LOG and MYSQL_BIN_LOG
become independent classes. Reasons:
- MYSQL_LOG has not a lot of code
- We never refer to MYSQL_LOG, only to MYSQL_QUERY_LOG and MYSQL_BIN_LOG
- MYSQL_LOG has no virtual functions
- MYSQL_LOG has a "log_type" member which can be either LOG_NORMAL
or LOG_BIN and several functions have different behavior depending on
the value.
- Some MYSQL_LOG functions/parameters are only used by one of the subclasses.
2) Move code only related to replication out of log.h/log.cc
3) Add doxygen comments to log.h
4) Move logging related code to log.h/log.cc from sys_vars.cc, sql_parse.cc,
sql_class.h/.cc.
5) Simplify log initialization/cleanup code. Do more in constructors/destructors,
don't initialize the same thing twice etc.
6) Remove dead code.
7) Split error log code from general/slow query log code. These logs are quite
different both implementation and usage wise. E.g. we support stderr/file
for error log, but file/table for query logs.
8) Rename classes/functions/variables to be more consistent and more clearly
indicate their role.
9) Update code to follow coding guidelines.
10) Lock/unlock related mutexes in a more consistent manner - LOCK_log,
LOCK_logger, LOCK_global_system_variables.
11) Make functions/variables private and const whenever possible.
12) Remove code duplication.