How do I disable log messages from the Requests library?
I found out how to configure requests's logging level, it's done via the standard logging module. I decided to configure it to not log messages unless they are at least warnings:
import logging
logging.getLogger("requests").setLevel(logging.WARNING)
If you wish to apply this setting for the urllib3 library (typically used by requests) too, add the following:
logging.getLogger("urllib3").setLevel(logging.WARNING)
Unable to disable logging from python's request library
You can change setLevel
to critical like this logging.getLogger("requests").setLevel(logging.CRITICAL)
or you can use requests.packages.urllib3.disable_warnings()
. See this: How do I disable log messages from the Requests library?. A question like this is alreasy asked.
How can I completely remove any logging from requests module in Python
First of all, requests
doesn't log anything; only the urllib3
library that requests
depends on does. That library only logs messages at INFO
and DEBUG
levels, so setting the log level to logging.CRITICAL
disables all messages already:
urllib3_log = logging.getLogger("urllib3")
urllib3_log.setLevel(logging.CRITICAL)
You could also just disable propagation:
logging.getLogger("urllib3").propagate = False
That's enough to completely disable all logging that the urllib3
library does.
The urllib3
project has installed a NullHandler()
handler object on the project root logger, which ensures that the lastResort
handler is not used for unhandled messages, even when propagation has been disabled.
That said, if you don't trust that future versions of requests
won't use sys.maxint
as a log level, and at the same time neglect to set a NullHandler()
, then by all means add your own NullHandler()
on the project root logger object, and then disable propagation there:
import logging
requests_log = logging.getLogger("requests")
requests_log.addHandler(logging.NullHandler())
requests_log.propagate = False
Now all logging within the requests
hierarchy will be directed to the NullHandler()
instance, and with propagate
set to False
logging stops there. You can use this to silence any logger in the hierarchy.
In my opinion, that's overkill, no requests
release made so far uses logging, and the project is staffed with capable developers that are unlikely to misconfigure the logging setup if they ever did add logging.
How to disable log messages from the Requests library in Django
The correct solution was what I had thought it was, just adding it to the LOGGING
setting in `settings.py'
'requests': {
# The requests library is too verbose in it's logging, reducing the verbosity in our logs.
'handlers': DEFAULT_HANDLERS,
'level': 'WARNING',
},
Python Logging - Disable logging from imported modules
The problem is that calling getLogger
without arguments returns the root logger so when you set the level to logging.DEBUG
you are also setting the level for other modules that use that logger.
You can solve this by simply not using the root logger. To do this just pass a name as argument, for example the name of your module:
logger = logging.getLogger('my_module_name')
# as before
this will create a new logger and thus it wont inadvertently change logging level for other modules.
Obviously you have to use logger.debug
instead of logging.debug
since the latter is a convenience function that calls the debug
method of the root logger.
This is mentioned in the Advanced Logging Tutorial. It also allows you to know which module triggered the log message in a simple way.
How to disable logging on the standard error stream?
I found a solution for this:
logger = logging.getLogger('my-logger')
logger.propagate = False
# now if you use logger it will not log to console.
This will prevent logging from being send to the upper logger that includes the console logging.
Related Topics
How to Read the Rgb Value of a Given Pixel in Python
Remove and Replace Printed Items
Extract Images from PDF Without Resampling, in Python
What Exactly Is File.Flush() Doing
How to Ignore Deprecation Warnings in Python
How to Export Keras .H5 to Tensorflow .Pb
How to Get the Ip Address from a Nic (Network Interface Controller) in Python
How to Use Argsort in Descending Order
Python Numpy Valueerror: Operands Could Not Be Broadcast Together with Shapes
Python Multithreading Wait Till All Threads Finished
How to Plot Multiple Seaborn Jointplot in Subplot
Pandas Select from Dataframe Using Startswith
Run a .Bat File Using Python Code
Merging Several Python Dictionaries
Color by Column Values in Matplotlib
Finding a Key Recursively in a Dictionary