Logs, logging. What it is and how to register events with Python
Creating logs using logging allows us a lot of functionality and flexibility in the code. In this short article I show you the basics and a little more to start incorporating it into your projects.
Logging is a way to monitor events. These events are visible through a descriptive message, with certain variable information (the value of some variable or the result of a function) and with a certain level of importance.
A log is like a print in Python, but the difference is that they are not necessarily printed on the screen and they can save these logs in a known file.
We will use the logging library, which already comes natively in Python:
import logging logging.basicConfig( filename="log-de-hoy.log", encoding="utf-8", level=logging.DEBUG, format="%(asctime)s %(levelname)s %(message)s" ) def add(a, b): try: result = a + b logging.info(f"Adding {a} and {b}. Result: {result}") except TypeError: result = None logging.error("The values should be numeric") return result print(add(2, 3)) # 5 print(add(2, "3")) # None
If we execute this, a file called log-de-hoy.log is generated:
2023-12-08 11:56:30,544 INFO Adding 2 and 3. Result: 5 2023-12-08 11:56:30,544 ERROR The values should be numeric
?? We start basic configuration: with logging.basicConfig we declare:
?? We record the result of the sum with info level
?? We register the error of adding an int and a string with error level
Perhaps you can already imagine it, since it is a powerful tool that will help us quickly identify anomalies. Some of the use cases to use it are:
It's easy to implement, right? Is it a plus to integrate it into any project and stop using so many prints?
The logging module offers much more than the little I showed here. But this little is more than enough! If necessary, the documentation explains other cases, methods, configs and so on quite well.
The above is the detailed content of Logging con Python. For more information, please follow other related articles on the PHP Chinese website!