import logging module
Reprint: https://mp.weixin.qq.com/s/K3k-Mk75tSe-Z8cTooyJTg
https://blog.csdn.net/zywvvd/article/details/87857816
The simplest way to record a log is to print at the place to be recorded, but this method has no time to print, does not know the location of the log record, and has no readable log format. Therefore, it is necessary to use the python built-in logging module.
1.logging framework
It mainly includes four parts:
(1) Logger
Returns the logger with the specified name or, if no name is specified, the root logger of the hierarchy
(2) Handler (processor)
Accurately distribute the information sent by the logger and send it to the correct place (such as console, file, etc.)
Python has built-in many practical processors, including:
1. StreamHandler standard stream processor, which sends messages to standard output stream and error stream
2. FileHandler is a file processor that sends messages to files
3. The RotatingFileHandler file processor enables a new file to store logs after the file reaches the specified size
4. TimedRotatingFileHandler is a file processor that rotates log files at specific time intervals
(3) Formatter (formatter)
Specify the format and layout of a final record print, and splice the transmitted data into a specific string.
There are some built-in LogRecord properties in Format that can be used, as shown in the following table:
(4) Filter
Provide finer grained judgment to determine whether the log needs to be printed. For example, Filter can intercept or modify logs from specific sources, and even modify its log level (judge the level after modification).
2. Log level
3. Common functions
(1)logging.basicConfig()
Basic configuration of the log system. This function does nothing if the root logger has a handler configured. Keyword parameters:
filename: save path of log file. If some parameters are configured, a FileHandler will be automatically created as the Handler;
File mode: the open mode of the log file. The default value is' a ', which means that the log message is added to the log file in the form of append. If it is set to 'w', a new log file will be created every time the program starts;
Format: set the log output format;
datefmt: defines the date format;
Level: sets the level of the log Log messages below this level will be ignored;
Stream: set a specific stream to initialize StreamHandler;
(2)logging.getLogger()
Returns the root logger in the log object hierarchy.
(3)logging.getLevelName()
Gets the name corresponding to the log level.
(4)logger.setLevel():
Set the level of the log. Log messages below this level will be ignored.
4. Basic use
(1)
import logging logging.basicConfig(level=logging.DEBUG)#Modify log default level logging.debug("this is debug") logging.info("this is info") logging.warning("this is warning") logging.error("this is error") logging.critical("this is critical") '''Print results DEBUG:root:this is debug INFO:root:this is info WARNING:root:this is warning ERROR:root:this is error CRITICAL:root:this is critical '''
import logging logging.basicConfig() logging.debug("this is debug") logging.info("this is info") logging.warning("this is warning") logging.error("this is error") logging.critical("this is critical") '''Print results WARNING:root:this is warning ERROR:root:this is error CRITICAL:root:this is critical The default log level for basic configuration is WARGING,lower than WARING No log information will be output '''
(2) Specify log format
import logging logging.basicConfig(format='%(asctime)s %(levelname)s %(name)s %(message)s') logging.error("this is error") '''Print results 2021-12-23 16:44:21,547 ERROR root this is error '''