i'm trying to reduce the amount of logging that the napalm
library sends to syslog, but also allow for info
logs to be sent from other parts of the code. I set up logging.basicConfig
to be INFO
but then i'd like the napalm
function to be WARNING
and above.
So i have code like this:
from napalm import get_network_driver
import logging
import getpass
logging.basicConfig(
filename="/var/log/myscripts/script.log", level=logging.INFO, format="%(asctime)s %(message)s")
def napalm(device):
logging.getLogger().setLevel(logging.WARNING)
username = getpass.getuser()
driver = get_network_driver("junos")
router = driver(str(device), username, "", password="", timeout=120)
router.open()
return router
router = napalm('myrouter')
config = "hostname foobar"
router.load_merge_candidate(config=config)
show = router.compare_config()
logging.info(show)
The issue is the logging.info
output never makes it to the log file. If i do logging.warning(show)
it does, but i'd like this to be info
. The reason i want the function to be WARNING
is that it generates so much other logging at the info
level that is just noise. So trying to cut down on that.