"If a worker wants to do his job well, he must first sharpen his tools." - Confucius, "The Analects of Confucius. Lu Linggong"
Front page > Programming > Logging con Python

Logging con Python

Published on 2024-11-08
Browse:131

Logging con Python

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.

What is logging? And a log?

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 these logs can be saved in a known file.

How can I use it?

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

Explanation

?? We start basic configuration: with logging.basicConfig we declare:

  • filename: name of the particular file that we want to add the logs to (for the example the name is log-de-hoy.log, but ideally it should have a descriptive name with the date of the day)
  • encoding: type of format in which we save each log
  • level: we define from which level we want to observe. The different levels are in their documentation and you will see that they have a numerical value, with logging.INFO being 20. If we need debug, at least I need a 10. So, with logging.DEBUG we make sure that levels with value 10 onwards are registered.
  • format: format in which the logs are recorded, in this case it is message level date

?? We record the result of the sum with level info

?? We register the error of adding an int and a string with level error

Why use logging?

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:

  • ? Debugging and troubleshooting
  • ? Performance monitoring and analysis
  • ? Audit and compliance
  • ? Security and anomaly detection

To finish…

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.

Release Statement This article is reproduced at: https://dev.to/javicerodriguez/logging-con-python-2j7m?1 If there is any infringement, please contact [email protected] to delete it
Latest tutorial More>

Disclaimer: All resources provided are partly from the Internet. If there is any infringement of your copyright or other rights and interests, please explain the detailed reasons and provide proof of copyright or rights and interests and then send it to the email: [email protected] We will handle it for you as soon as possible.

Copyright© 2022 湘ICP备2022001581号-3