Summary of the use of logging libraries in python
Python's logging module provides a general logging system, which can be used by third-party modules or applications. The following article mainly introduces some knowledge summary about the use of logging library in python. The article gives detailed information. Sample code, friends in need can refer to it, let’s take a look below.
Preface
Recently, due to work needs, I have been writing some python scripts. It feels very low to always use print to print information, so I took the time. I have studied the logging library of python to print and record logs elegantly. I won’t go into more details below, let’s take a look at the detailed introduction.
1. Simply print the log to the screen:
import logging logging.debug('This is debug message') #debug logging.info('This is info message') #info logging.warning('This is warning message') #warn
Print on screen :WARNING:root:This is warning message
By default, WARNING level logs will be printed
DEBUG: Detailed information , debugging information.
INFO: Confirm everything is working as expected.
WARNING: Indicates that something unexpected has occurred, or that a problem will occur in the near future (such as 'disk full'). The software is still working normally.
ERROR: Due to a more serious problem, the software can no longer perform some functions.
CRITICAL: A serious error indicating that the software can no longer run.
2. Configure the log input format and method through the basicConfig function
import logging logging.basicConfig(level=logging.DEBUG, format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s', datefmt='%Y-%m-%d %a %H:%M:%S', filename='test.log', filemode='w') logging.debug('This is debug message') logging.info('This is info message') logging.warning('This is warning message')
The above code will not print the log on the screen, but will generate the log file test.log in the current directory, and the log will be printed in the log file:
2017 -10-16 Mon 10:05:17 testlogging.py[line:25] DEBUG This is debug message
2017-10-16 Mon 10:05:17 testlogging.py[line:26 ] INFO This is info message
2017-10-16 Mon 10:05:17 testlogging.py[line:27] WARNING This is warning message
- ## Parameters of the #logging.basicConfig function:
- filename: Specify the log file name
- #filemode: The same meaning as the file function, specify the log file name Open mode, 'w' or 'a' ##format: Specify the output format and content. format can output a lot of useful information, as shown in the above example:
%(levelno)s: 打印日志级别的数值 %(levelname)s: 打印日志级别名称 %(pathname)s: 打印当前执行程序的路径,其实就是sys.argv[0] %(filename)s: 打印当前执行程序名 %(funcName)s: 打印日志的当前函数 %(lineno)d: 打印日志的当前行号 %(asctime)s: 打印日志的时间 %(thread)d: 打印线程ID %(threadName)s: 打印线程名称 %(process)d: 打印进程ID %(message)s: 打印日志信息
- datefmt: Specifies the time format, the same as time.strftime()
- level: Sets the log level , the default is logging.WARNING
- stream: Specify the output stream of the log. You can specify the output to sys.stderr, sys.stdout or a file. The default output is to sys.stderr. When stream When specified with filename at the same time, stream is ignored
3. Output the log to the screen and log file at the same time
#定义一个StreamHandler,将INFO级别或更高的日志信息打印到标准错误,并将其添加到当前的日志处理对象 console = logging.StreamHandler() console.setLevel(logging.INFO) formatter = logging.Formatter('%(name)-12s: %(levelname)-8s %(message)s') console.setFormatter(formatter) logging.getLogger('').addHandler(console)
Insert the above code to print the log on the screen at the same time
Print on the screen:
root: INFO This is info message
root : WARNING This is warning message
printed in the file:
2017-10-16 Mon 10: 20:07 testlogging.py[line:46] DEBUG This is debug message
2017-10-16 Mon 10:20:07 testlogging.py[line:47] INFO This is info message
2017-10-16 Mon 10:20:07 testlogging.py[line:48] WARNING This is warning message
4. Configure through the configuration file Log
#logger.conf [loggers] #定义logger模块,root是父类,必需存在的,其它的是自定义。 keys=root,infoLogger,warnlogger [logger_root] level=DEBUG #level 级别,级别有DEBUG、INFO、WARNING、ERROR、CRITICAL handlers=infohandler,warnhandler #handlers 处理类,可以有多个,用逗号分开 [logger_infoLogger] #[logger_xxxx] logger_模块名称 handlers=infohandler qualname=infoLogger #qualname logger名称,应用程序通过 logging.getLogger获取。对于不能获取的名称,则记录到root模块。 propagate=0 #propagate 是否继承父类的log信息,0:否 1:是 [logger_warnlogger] handlers=warnhandler qualname=warnlogger propagate=0 ############################################### #定义handler [handlers] keys=infohandler,warnhandler [handler_infohandler] class=StreamHandler #class handler类名 level=INFO #level 日志级别 formatter=form02 #formatter,下面定义的formatter args=(sys.stdout,) #args handler初始化函数参数 [handler_warnhandler] class=FileHandler level=WARN formatter=form01 args=('logs/deploylog.log', 'a') ############################################### # 定义格式化输出 [formatters] keys=form01,form02 [formatter_form01] format=%(message)s %(asctime)s datefmt=%Y-%m-%d %H:%M:%S [formatter_form02] format=%(asctime)s %(levelname)s %(message)s datefmt=%Y-%m-%d %H:%M:%S
Log format
##%(filename)s file name, excluding directory
%(pathname)s Directory name, full path
%(funcName)s Function name
%(levelname) s level name
%(lineno)d line number
- ##%(module)s module name
- %(message)s Message body
- %(name)s Log module name
- %(process)d Process id
- %(processName)s process name
- %(thread)d thread id
- % (threadName)s thread name
- Test configuration file
from logging.config import fileConfig fileConfig('logger.conf') logger=logging.getLogger('infoLogger') logger.info('test1') logger_error=logging.getLogger('warnhandler') logger_error.warn('test5')
Summary
The above is the detailed content of Summary of the use of logging libraries in python. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

PHP is mainly procedural programming, but also supports object-oriented programming (OOP); Python supports a variety of paradigms, including OOP, functional and procedural programming. PHP is suitable for web development, and Python is suitable for a variety of applications such as data analysis and machine learning.

PHP is suitable for web development and rapid prototyping, and Python is suitable for data science and machine learning. 1.PHP is used for dynamic web development, with simple syntax and suitable for rapid development. 2. Python has concise syntax, is suitable for multiple fields, and has a strong library ecosystem.

PHP originated in 1994 and was developed by RasmusLerdorf. It was originally used to track website visitors and gradually evolved into a server-side scripting language and was widely used in web development. Python was developed by Guidovan Rossum in the late 1980s and was first released in 1991. It emphasizes code readability and simplicity, and is suitable for scientific computing, data analysis and other fields.

Python is more suitable for beginners, with a smooth learning curve and concise syntax; JavaScript is suitable for front-end development, with a steep learning curve and flexible syntax. 1. Python syntax is intuitive and suitable for data science and back-end development. 2. JavaScript is flexible and widely used in front-end and server-side programming.

To run Python code in Sublime Text, you need to install the Python plug-in first, then create a .py file and write the code, and finally press Ctrl B to run the code, and the output will be displayed in the console.

VS Code can run on Windows 8, but the experience may not be great. First make sure the system has been updated to the latest patch, then download the VS Code installation package that matches the system architecture and install it as prompted. After installation, be aware that some extensions may be incompatible with Windows 8 and need to look for alternative extensions or use newer Windows systems in a virtual machine. Install the necessary extensions to check whether they work properly. Although VS Code is feasible on Windows 8, it is recommended to upgrade to a newer Windows system for a better development experience and security.

Writing code in Visual Studio Code (VSCode) is simple and easy to use. Just install VSCode, create a project, select a language, create a file, write code, save and run it. The advantages of VSCode include cross-platform, free and open source, powerful features, rich extensions, and lightweight and fast.

VS Code can be used to write Python and provides many features that make it an ideal tool for developing Python applications. It allows users to: install Python extensions to get functions such as code completion, syntax highlighting, and debugging. Use the debugger to track code step by step, find and fix errors. Integrate Git for version control. Use code formatting tools to maintain code consistency. Use the Linting tool to spot potential problems ahead of time.
