Skip to content
Snippets Groups Projects
Commit 4d31afe7 authored by Robin Jarry's avatar Robin Jarry
Browse files

Only enable console logging when running interactive session


By default, only a NullHandler is added to the 'scapy' logger. This
allows third party applications that use scapy as a library to control
the logging of scapy messages.

Signed-off-by: default avatarRobin Jarry <robin.jarry@6wind.com>
parent af35135c
No related branches found
No related tags found
No related merge requests found
......@@ -45,10 +45,16 @@ class ScapyFreqFilter(logging.Filter):
self.warning_table[caller] = (tm,nb)
return 1
try:
from logging import NullHandler
except ImportError:
# compat for python 2.6
from logging import Handler
class NullHandler(Handler):
def emit(self, record):
pass
log_scapy = logging.getLogger("scapy")
console_handler = logging.StreamHandler()
console_handler.setFormatter(logging.Formatter("%(levelname)s: %(message)s"))
log_scapy.addHandler(console_handler)
log_scapy.addHandler(NullHandler())
log_runtime = logging.getLogger("scapy.runtime") # logs at runtime
log_runtime.addFilter(ScapyFreqFilter())
log_interactive = logging.getLogger("scapy.interactive") # logs in interactive functions
......
......@@ -196,6 +196,10 @@ def interact(mydict=None,argv=None,mybanner=None,loglevel=20):
if loglevel is not None:
conf.logLevel=loglevel
console_handler = logging.StreamHandler()
console_handler.setFormatter(logging.Formatter("%(levelname)s: %(message)s"))
log_scapy.addHandler(console_handler)
the_banner = "Welcome to Scapy (%s)"
if mybanner is not None:
the_banner += "\n"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment