Skip to content

Commit bf306e7

Browse files
authored
Merge pull request #67 from wpyoga/log-level-global
Fix logging functionality
2 parents 7809ae8 + 8ae9227 commit bf306e7

File tree

1 file changed

+16
-17
lines changed

1 file changed

+16
-17
lines changed

wsdiscovery/cmdline.py

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,7 @@
88
from wsdiscovery.scope import Scope
99
from wsdiscovery.qname import QName
1010

11-
logging.basicConfig()
12-
13-
DEFAULT_LOGLEVEL = logging.INFO
11+
DEFAULT_LOGLEVEL = "INFO"
1412

1513
@contextmanager
1614
def discovery(capture=None):
@@ -27,29 +25,28 @@ def publishing(capture=None):
2725
wsd.stop()
2826

2927

30-
def get_logger(name, loglevel):
31-
if loglevel:
32-
level = getattr(logging, loglevel, None)
33-
if not level:
34-
print("Invalid log level '%s'" % loglevel)
35-
sys.exit()
36-
else:
37-
level = DEFAULT_LOGLEVEL
28+
def setup_logger(name, loglevel):
29+
level = getattr(logging, loglevel, None)
30+
if not level:
31+
print("Invalid log level '%s'" % loglevel)
32+
sys.exit()
3833

39-
logger = logging.getLogger(name)
40-
logger.setLevel(level)
34+
logging.basicConfig(level=level)
35+
return logging.getLogger(name)
4136

4237

4338
@click.command()
4439
@click.option('--scope', '-s', help='Full scope URI, eg. onvif://www.onvif.org/Model/')
4540
@click.option('--address', '-a', help='Service address')
4641
@click.option('--port', '-p', type=int, help='Service port')
47-
@click.option('--loglevel', '-l', help='Log level; one of INFO, DEBUG, WARNING, ERROR')
42+
@click.option('--loglevel', '-l', default=DEFAULT_LOGLEVEL, show_default=True,
43+
type=click.Choice(["DEBUG", "INFO", "WARNING", "ERROR", "CRITICAL"]),
44+
help='Log level')
4845
@click.option('--capture', '-c', nargs=1, type=click.File('w'), help='Capture messages to a file')
4946
def discover(scope, address, port, loglevel, capture):
5047
"Discover services using WS-Discovery"
5148

52-
logger = get_logger("ws-discovery", loglevel)
49+
logger = setup_logger("ws-discovery", loglevel)
5350

5451
with discovery(capture) as wsd:
5552
scopes = [Scope(scope)] if scope else []
@@ -66,12 +63,14 @@ def discover(scope, address, port, loglevel, capture):
6663
@click.option('--typename', '-t', help='Qualified type name, eg. https://myservicesns:myservice_type')
6764
@click.option('--address', '-a', help='Service IP address')
6865
@click.option('--port', '-p', type=int, help='Service port')
69-
@click.option('--loglevel', '-l', help='Log level; one of INFO, DEBUG, WARNING, ERROR')
66+
@click.option('--loglevel', '-l', default=DEFAULT_LOGLEVEL, show_default=True,
67+
type=click.Choice(["DEBUG", "INFO", "WARNING", "ERROR", "CRITICAL"]),
68+
help='Log level')
7069
@click.option('--capture', '-c', nargs=1, type=click.File('w'), help='Capture messages to a file')
7170
def publish(scope, typename, address, port, loglevel, capture):
7271
"Publish services using WS-Discovery"
7372

74-
logger = get_logger("ws-publishing", loglevel)
73+
logger = setup_logger("ws-publishing", loglevel)
7574

7675
with publishing(capture) as wsp:
7776
scopes = [Scope(scope)] if scope else []

0 commit comments

Comments
 (0)