88from wsdiscovery .scope import Scope
99from wsdiscovery .qname import QName
1010
11- logging .basicConfig ()
12-
13- DEFAULT_LOGLEVEL = logging .INFO
11+ DEFAULT_LOGLEVEL = "INFO"
1412
1513@contextmanager
1614def 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' )
4946def 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' )
7170def 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