1.logging Module
The logging module is the log module used to record the state of the program's operation.
There are five levels:
- Debug
- Info
- Warning
- Error
- Critical
Logging.debug ('Debug Message') #logging. info ('Info Message') logging.warning ('warn message') #表明发生了一些意外, or problems will occur in the near future (such as ' Disk full '). The software is still working properly. Logging.error ('error Message') #由于更严重的问题, the software is no longer capable of performing some functions. Logging.critical ('Critical Message') #严重错误 that the software cannot continue running.
Used to output the log content, it can be customized to the log content according to their own needs
WARNING:root:warn messageERROR:root:error messageCRITICAL:root:critical message# in the process of output, root is the user currently in use
1.1 Adjusting Display parameters
Parameter name Description filename Specifies the file name of the log output destination file, and the log confidence is not output to the console after you specify the setting item FileMode the open mode of the specified log file, which defaults to'a'. It is important to note that this option is valid when the filename is specified, format specifies the log format string, which specifies the field information that is included in the log output and the order in which they are made. The format fields defined by the logging module are listed below. Datefmt Specified date/Time format. It is important to note that the option to include the Time field% in format(Asctime) s is only valid level specifies the log levels of the logger stream, which specifies the log output target stream, such as Sys.stdout, Sys.stderr, and network stream. It should be explained that the stream and filename cannot be provided at the same time, otherwise the ValueError exception will be thrown style PythonThe newly added configuration item in 3.2. Specifies the style of the format string and the desired value is'%'、'{'And'$', the default is'%'handlers PythonThe newly added configuration item in 3.3. If this option is specified, it should be an iterative object that creates multiple handler that will be added to the root logger. It is important to note that the three configuration items, filename, stream, and handlers, can only have one presence, not 2 or 3 at the same time, or a ValueError exception will be thrown.
1.1 Level----Basicconfig
Logging.basicconfig (filename='logger.log', level=logging.info)# use the Basicconfig method to display the display content, if there is a filename, the log content is stored in the appropriate file, or output to the screen, # levels are the lowest level of information, and if you want to filter out some harmless information, you can use info
1.2format
ImportLogginglogging.basicconfig ( level=logging. debug,format='% (asctime) s-% (levelname) s-% (message) s') Logging.debug ('Debug Message') Logging.info ('Info Message') logging.warning ('warn message') Logging.error ('error Message') logging.critical ('Critical Message')
2018-07-02 22:42:36,277-debug-DEBUG message2018-07-02 22:42:36,544-info-INFO message2018-07-02 22:42:36,544-warning-warn message2018-07-02 22:42:36,544-error-ERROR message2018-07-02 22:42:36,545-critical-critical message
Format is formatted as Time-levelname-message
Four modules of 1.3 logging
Component name corresponding class name function description Logger Logger provides an interface processor that the application can use all the time Handler sends Logger created log records to the appropriate destination output filter Filter provides a finer-grained control tool to determine which logging to output, and which logging format to discard Formatter determines the final output format of the log record
1.3.1 Print the log to the screen at the same time, and write the file
ImportLogginglogger=logging.getlogger ('Abc.txt') Logger.setlevel (logging. DEBUG)#Setting the log levelFh=logging. Filehandler ('Abc.txt')#output the log to a fileCh=logging. Streamhandler ()#Output to screenLogger.addhandler (FH)#Adding a method to the processorLogger.addhandler (CH) FM=logging. Formatter ('% (asctime) s-% (levelname) s-% (message) s')#setting the output formatFH.SETFORMATTER (FM)#Application Formatch.setformatter (FM) logger.debug ('Debug Message') Logger.info ('Info Message') logger.warning ('warning Message') Logger.error ('error Message') logger.critical ('Critical Message')
2018-07-03 00:05:53,601-debug-DEBUG message2018-07-03 00:05:53,601-info-INFO message2018-07-03 00:05:53,601-warning-WARNING message2018-07-03 00:05:53,601-error-ERROR message2018-07-03 00:05:53,601-critical-critical message
1.3.2 when there is a root and a child user
Root as the parent process, prints the information of the child user and prints the parent process root information at the same time
2.configparser Module
configuration file, which is stored as a dictionary
ImportConfigparserconfig= Configparser. Configparser ()#config={} #相当于定义一个空字典config["DEFAULT"] = {'Serveraliveinterval':' $', 'Compression':'Yes', 'CompressionLevel':'9'}#writing a dictionary type to a fileconfig['bitbucket.org'] ={}config['bitbucket.org']['User'] ='HG'config['topsecret.server.com'] ={}topsecret= config['topsecret.server.com']topsecret['Host Port'] ='50022' #mutates the parsertopsecret['ForwardX11'] ='No' #same hereWith Open ('Example.ini','W') as F:config.write (f)
= = 9 = = 50022= no
2.1 Querying the configuration file
2.1.1 View
Import configparserconfig=configparser. Configparser () config.read('example.ini')print(' bitbucket.org' in config)print(config[' bitbucket.org'['user'])
2.1.2 to traverse the key of a file
2.1.3 Increase
ImportConfigparserconfig=Configparser. Configparser () Config.read ('Example.ini')Print('bitbucket.org' inchconfig)Print(config['bitbucket.org']['User']) config.add_section ('Haibin') Config.set ('Haibin','K1','value') with open ('Example.ini','W') as F:config.write (f)
2.1.4 Delete
ImportConfigparserconfig=Configparser. Configparser () Config.read ('Example.ini')Print('bitbucket.org' inchconfig)Print(config['bitbucket.org']['User']) config.remove_section ('Haibin')#Delete entire blockConfig.remove_option ('bitbucket.org','User')#Delete the key value below the blockWith open ('Example.ini','W') as F:config.write (f)
3.hashlib Module
For encryption, all values can be encrypted, and a value of the same length is obtained
You can make a comparison of the files and then query whether the files are the same.
Usage
Import hashlibobj=hashlib.md5 () #以md5的方式进行hash # to avoid being cracked, you can also add a checksum to the MD5 to reduce the chance of being cracked. #obj =hashlib.md5 (' SB ', encode= ' UTF8 ') obj.update ('brown') encode (' Utf-8') #使用update方法, start the hash, the first parameter is the value of the hash, the second is the encoding mode print( Obj.hexdigest ()) #这个是对所更新的值进行输出---6ff47afa5dc7daa42cc705a03fca8a9b
2018-06-27-python full stack development day23-logging, Configparser, Hashlib module