Table of Contents
You can use MySQL Shell's logging feature to verify the state of MySQL Shell while it is running and to troubleshoot any issues.
By default, MySQL Shell sends logging information at logging level 5 (error, warning, and informational messages) to an application log file. You can also configure MySQL Shell to send the information to an optional additional viewable location, and (from MySQL 8.0.17) to the console as verbose output.
You can control the level of detail to be sent to each destination. For the application log and additional viewable location, you can specify any of the available levels as the maximum level of detail. For verbose output, you can specify a setting that maps to a maximum level of detail. The following levels of detail are available:
Table 12.1 Logging levels in MySQL Shell
Logging Level - Numeric | Logging Level - Text | Meaning | Verbose Setting |
---|---|---|---|
1 |
|
No logging |
0 |
2 |
|
Internal Error |
1 |
3 |
|
Error |
1 |
4 |
|
Warning |
1 |
5 |
|
Informational |
1 |
6 |
|
Debug |
2 |
7 |
|
Debug2 |
3 |
8 |
|
Debug3 |
4 |
From MySQL Shell 8.0.24, you can choose to send SQL statements that
you issue interactively in MySQL Shell's SQL mode to the operating
system’s system logging facility (syslog
on Unix, or
the Windows Event Log). SQL statements that would be excluded from
the MySQL Shell code history are not sent to the system logging
facility.
By default, MySQL Shell does not log or output SQL statements that are executed by MySQL Shell itself in the course of AdminAPI operations. From MySQL Shell 8.0.18, you can activate logging for these statements if you want to observe the progress of these operations in terms of SQL execution, in addition to the messages returned during the operations. The statements are written to the MySQL Shell application log file as informational messages provided that the logging level is set to 5 or above. They are also sent to the console as verbose output provided that the verbose setting is 1 or above.
By default, MySQL Shell sends all logging for a program to the same
application log file, and all output for a program to the same
destination. From MySQL Shell 8.0.26, the function
shell.create_context
can be used in
MySQL Shell's Python mode to support multithreading by Python
programs. The function is used inside a new Python thread to create
a scope which isolates logging, interrupts, and delegates. The
context wrapper handles and isolates output printed to
stdout
and stderr
and
diagnostic output, and also user input, with separate handling for
passwords. You can also create an individual application log file
specific to the thread.
For instructions to configure the application log and the optional
additional destination, which is stderr
on
Unix-based systems or the OutputDebugString()
function on Windows systems, see
Section 12.1, “Application Log”.
For instructions to send logging information to the console as verbose output, see Section 12.2, “Verbose Output”.
For instructions to send interactive SQL statements to the system logging facility, see Section 12.3, “System Logging for User SQL Statements”.
For instructions to activate logging for SQL statements that are executed by AdminAPI operations, see Section 12.5, “Logging AdminAPI Operations”.