@@ -115,19 +115,30 @@ class Sender(logging.Handler):
115
115
116
116
"""
117
117
def __init__ (self , config = None , ** kwargs ):
118
- if not config :
119
- config = SenderConfigTCP (** kwargs ) if kwargs .get ('type' ) == "TCP" \
120
- else SenderConfigSSL (** kwargs ) if kwargs .get ('type' ) == "SSL" \
121
- else None
122
-
123
- if not config :
124
- raise DevoSenderException ("Problems with args passed to Sender" )
118
+ if not isinstance (config , (SenderConfigSSL , SenderConfigTCP )):
119
+ if not config :
120
+ config = kwargs
121
+ else :
122
+ config .update (kwargs )
123
+
124
+ if "type" not in config .keys ():
125
+ config ["type" ] = "SSL"
126
+ config = SenderConfigSSL (** config )
127
+ elif config ["type" ] not in ["TCP" , "SSL" ]:
128
+ raise DevoSenderException (
129
+ "Devo-Sender|Type must be 'SSL' or 'TCP'" )
130
+ elif config .get ("type" ) == "TCP" :
131
+ config = SenderConfigTCP (** config )
132
+ elif config .get ("type" ) == "SSL" :
133
+ config = SenderConfigSSL (** config )
134
+ else :
135
+ raise DevoSenderException ("Problems with args passed to Sender" )
125
136
126
137
logger = kwargs .get ('logger' , None )
127
138
128
139
logging .Handler .__init__ (self )
129
- self .logger = self . __set_logger ( kwargs . get ( 'verbose_level' , "INFO" )) \
130
- if logger is None else logger
140
+ self .logger = logger if logger \
141
+ else self . __set_logger ( kwargs . get ( 'verbose_level' , "INFO" ))
131
142
132
143
self .socket = None
133
144
self ._sender_config = config
@@ -452,7 +463,7 @@ def for_logging(config, con_type="SSL", tag=None, level=10):
452
463
if "verbose_level" not in config .keys ():
453
464
config ["verbose_level" ] = level
454
465
455
- con = Sender .from_config (config , con_type )
466
+ con = Sender .from_config (config , con_type = con_type )
456
467
if tag :
457
468
con .set_logger_tag (tag )
458
469
elif "tag" in config .keys ():
@@ -470,44 +481,13 @@ def from_config(config, con_type=None, logger=None):
470
481
:param logger: logger handler, default None
471
482
:return: Sender object
472
483
"""
473
- con_type = config ['type' ].upper () if "type" in config and con_type \
474
- is not None else "SSL"
475
- cert_reqs = config ['cert_reqs' ] if "cert_reqs" in config else True
484
+ if "cert_reqs" not in config .keys ():
485
+ config ['cert_reqs' ] = True
476
486
477
- if con_type == "SSL" :
478
- if cert_reqs :
479
- return Sender (
480
- SenderConfigSSL (
481
- address = config ['address' ],
482
- port = int (config ['port' ]),
483
- cert_reqs = True ,
484
- key = config ['key' ],
485
- cert = config ['cert' ],
486
- chain = config ['chain' ]
487
- ),
488
- logger = logger ,
489
- verbose_level = config .get ('verbose_level' , "INFO" )
490
- )
491
- return Sender (
492
- SenderConfigSSL (
493
- address = config ['address' ],
494
- port = int (config ['port' ]),
495
- cert_reqs = False
496
- ),
497
- logger = logger ,
498
- verbose_level = config .get ('verbose_level' , "INFO" )
499
- )
500
-
501
- if con_type == "TCP" :
502
- return Sender (
503
- SenderConfigTCP (
504
- address = config ['address' ],
505
- port = int (config ['port' ])
506
- ),
507
- logger = logger ,
508
- verbose_level = config .get ('verbose_level' , "INFO" )
509
- )
510
- raise DevoSenderException ("Devo-Sender|Type must be 'SSL' or 'TCP'" )
487
+ if "type" not in config .keys ():
488
+ config ['type' ] = con_type if con_type else "SSL"
489
+
490
+ return Sender (logger = logger , ** config )
511
491
512
492
def emit (self , record ):
513
493
"""
@@ -525,7 +505,7 @@ def emit(self, record):
525
505
try :
526
506
msg = self .format (record )
527
507
msg += '\000 '
528
- self .send (self ._logger_tag , msg , facility = self ._logger_facility ,
508
+ self .send (tag = self ._logger_tag , msg = msg , facility = self ._logger_facility ,
529
509
severity = priority_map .get (record .levelname , "info" ))
530
510
except Exception :
531
511
self .handleError (record )
0 commit comments