I am using the logging module in python as:
import logging, sys
logger= logging.getLogger(__file__)
logging.basicConfig(stream = sys.stderr, level=logging.DEBUG, format='%(filename)s:%(lineno)s %(levelname)s:%(message)s')
logger.debug("Hello World")
Now, after I have set the basic configuration on line 3
, I want to have a command line argument that can change the output stream from sys.stderr to a file.
I have read the doc and it says that if both filename
and stream
are present at the same time, the stream
is ignored.
Now, I wanna know how do change the stream to a file after I have already done the basicConfig
thing in line 3
?
If you look in the Python sources for
logging/__init__.py
, you'll see thatbasicConfig()
sets the handlers on the root logger object by callingaddHandler()
. If you want to start from scratch, you could remove all existing handlers and then callbasicConfig()
again.