B RCÁ’»„Bã@svddlZddlZddlZddlZddlZddlZddlZddlmZm Z m Z ddl Z ddl Z ddl Z dZdZdZdZdZdZdZGd d „d ejƒZGd d „d eƒZGd d„deƒZGdd„dejƒZGdd„dejƒZGdd„deƒZGdd„dejƒZGdd„dejƒZGdd„dejƒZGdd„dejƒZ Gdd„dejƒZ!Gdd „d e!ƒZ"Gd!d"„d"ejƒZ#Gd#d$„d$e$ƒZ%dS)%éN)ÚST_DEVÚST_INOÚST_MTIMEi<#i=#i>#i?#ii€Qc@s.eZdZd dd„Zdd„Zdd„Zd d „ZdS) ÚBaseRotatingHandlerNFcCs0tj |||||¡||_||_d|_d|_dS)N)ÚloggingÚ FileHandlerÚ__init__ÚmodeÚencodingÚnamerÚrotator)ÚselfÚfilenamer r Údelay©rú3/opt/alt/python37/lib/python3.7/logging/handlers.pyr3s zBaseRotatingHandler.__init__cCsHy$| |¡r| ¡tj ||¡Wntk rB| |¡YnXdS)N)ÚshouldRolloverÚ doRolloverrrÚemitÚ ExceptionÚ handleError)r Úrecordrrrr=s  zBaseRotatingHandler.emitcCst|jƒs|}n | |¡}|S)N)Úcallabler )r Z default_nameÚresultrrrÚrotation_filenameKs  z%BaseRotatingHandler.rotation_filenamecCs4t|jƒs$tj |¡r0t ||¡n | ||¡dS)N)rr ÚosÚpathÚexistsÚrename)r ÚsourceÚdestrrrÚrotate^s  zBaseRotatingHandler.rotate)NF)Ú__name__Ú __module__Ú __qualname__rrrr!rrrrr-s rc@s&eZdZd dd„Zdd„Zd d „ZdS) ÚRotatingFileHandlerÚarNFcCs.|dkr d}t |||||¡||_||_dS)Nrr&)rrÚmaxBytesÚ backupCount)r rr r'r(r rrrrrxs zRotatingFileHandler.__init__cCsÞ|jr|j ¡d|_|jdkrÊxtt|jdddƒD]^}| d|j|f¡}| d|j|df¡}tj |¡r4tj |¡r†t  |¡t  ||¡q4W| |jd¡}tj |¡r¼t  |¡|  |j|¡|j sÚ|  ¡|_dS)Nrééÿÿÿÿz%s.%dz.1)ÚstreamÚcloser(ÚrangerÚ baseFilenamerrrÚremoverr!rÚ_open)r ÚiZsfnÚdfnrrrr˜s$        zRotatingFileHandler.doRollovercCsZ|jdkr| ¡|_|jdkrVd| |¡}|j dd¡|j ¡t|ƒ|jkrVdSdS)Nrz%s ér))r+r0r'ÚformatÚseekÚtellÚlen)r rÚmsgrrrr¯s   z"RotatingFileHandler.shouldRollover)r&rrNF)r"r#r$rrrrrrrr%ss r%c@s6eZdZddd„Zdd „Zd d „Zd d „Zdd„ZdS)ÚTimedRotatingFileHandlerÚhr)rNFc Cs–t ||d||¡| ¡|_||_||_||_|jdkrLd|_d|_d|_ nì|jdkrjd|_d|_d |_ nÎ|jd krˆd |_d |_d |_ n°|jdksœ|jdkr°d|_d|_d|_ nˆ|j  d¡r*d|_t |jƒdkràt d|jƒ‚|jddksþ|jddkr t d|jƒ‚t |jdƒ|_d|_d|_ nt d|jƒ‚t |j tj¡|_ |j||_|j}tj |¡rzt |¡t} n t t ¡ƒ} | | ¡|_dS)Nr&ÚSr)z%Y-%m-%d_%H-%M-%Sz-^\d{4}-\d{2}-\d{2}_\d{2}-\d{2}-\d{2}(\.\w+)?$ÚMé<z%Y-%m-%d_%H-%Mz'^\d{4}-\d{2}-\d{2}_\d{2}-\d{2}(\.\w+)?$ÚHiz %Y-%m-%d_%Hz!^\d{4}-\d{2}-\d{2}_\d{2}(\.\w+)?$ÚDÚMIDNIGHTi€Qz%Y-%m-%dz^\d{4}-\d{2}-\d{2}(\.\w+)?$ÚWi€: r3zHYou must specify a day for weekly rollover from 0 to 6 (0 is Monday): %sÚ0Ú6z-Invalid day specified for weekly rollover: %sz'Invalid rollover interval specified: %s)rrÚupperÚwhenr(ÚutcÚatTimeÚintervalÚsuffixÚextMatchÚ startswithr7Ú ValueErrorÚintÚ dayOfWeekÚreÚcompileÚASCIIr.rrrÚstatrÚtimeÚcomputeRolloverÚ rolloverAt) r rrErHr(r rrFrGÚtrrrrÇsL      z!TimedRotatingFileHandler.__init__cCsd||j}|jdks"|j d¡r`|jr4t |¡}n t |¡}|d}|d}|d}|d}|jdkrnt}n |jj d|jj d|jj }||d|d|} | dkrÂ| t7} |d d }|| }|j d¡r`|} | |j kr`| |j krþ|j | } nd| |j d } || d } |js\|d } t | ¡d }| |kr\| sPd }nd}| |7} | }|S)Nr@rAéééér=rr)éi€Qr*iðñÿÿi) rHrErKrFrSÚgmtimeÚ localtimerGÚ _MIDNIGHTZhourZminuteÚsecondrN)r Ú currentTimerrVZ currentHourZ currentMinuteZ currentSecondZ currentDayZ rotate_tsÚrZdayZ daysToWaitÚ newRolloverAtÚdstNowÚ dstAtRolloverÚaddendrrrrTsH           z(TimedRotatingFileHandler.computeRollovercCstt ¡ƒ}||jkrdSdS)Nr)r)rMrSrU)r rrVrrrrIs  z'TimedRotatingFileHandler.shouldRolloverc Cs°tj |j¡\}}t |¡}g}|d}t|ƒ}xH|D]@}|d|…|kr6||d…}|j |¡r6| tj  ||¡¡q6Wt|ƒ|j krŽg}n|  ¡|dt|ƒ|j …}|S)NÚ.) rrÚsplitr.Úlistdirr7rJÚmatchÚappendÚjoinr(Úsort) r ZdirNameZbaseNameZ fileNamesrÚprefixZplenZfileNamerIrrrÚgetFilesToDeleteUs    z)TimedRotatingFileHandler.getFilesToDeletec Cs~|jr|j ¡d|_tt ¡ƒ}t |¡d}|j|j}|jrNt |¡}n6t |¡}|d}||kr„|rrd}nd}t ||¡}|  |j dt  |j |¡¡}t j |¡r¸t  |¡| |j |¡|jdkrìx| ¡D]}t  |¡qÚW|jsü| ¡|_| |¡} x| |kr | |j} qW|jdks<|j d¡rt|jstt | ¡d} || krt|shd}nd}| |7} | |_dS)Nr*iiðñÿÿrfrr@rA)r+r,rMrSr]rUrHrFr\rr.ZstrftimerIrrrr/r!r(rnrr0rTrErK) r r`rcrVZ timeTupleZdstThenrer2ÚsrbrdrrrrlsH            " z#TimedRotatingFileHandler.doRollover)r:r)rNFFN)r"r#r$rrTrrnrrrrrr9¿s  9I r9c@s.eZdZd dd„Zdd„Zdd „Zd d „ZdS) ÚWatchedFileHandlerr&NFcCs,tj |||||¡d\|_|_| ¡dS)N)r*r*)rrrÚdevÚinoÚ _statstream)r rr r rrrrr²s zWatchedFileHandler.__init__cCs0|jr,t |j ¡¡}|t|t|_|_dS)N)r+rÚfstatÚfilenorrrqrr)r Úsresrrrrs·szWatchedFileHandler._statstreamcCs„yt |j¡}Wntk r(d}YnX|rJ|t|jksJ|t|jkr€|jdk r€|j  ¡|j  ¡d|_|  ¡|_|  ¡dS)N) rrRr.ÚFileNotFoundErrorrrqrrrr+Úflushr,r0rs)r rvrrrÚreopenIfNeeded¼s       z!WatchedFileHandler.reopenIfNeededcCs| ¡tj ||¡dS)N)ryrrr)r rrrrrØszWatchedFileHandler.emit)r&NF)r"r#r$rrsryrrrrrrpžs rpc@sNeZdZdd„Zddd„Zdd„Zdd „Zd d „Zd d „Zdd„Z dd„Z dS)Ú SocketHandlercCsZtj |¡||_||_|dkr(||_n ||f|_d|_d|_d|_d|_ d|_ d|_ dS)NFgð?g>@g@) rÚHandlerrÚhostÚportÚaddressÚsockÚ closeOnErrorÚ retryTimeÚ retryStartÚretryMaxÚ retryFactor)r r|r}rrrrðs  zSocketHandler.__init__r)cCsj|jdk rtj|j|d}nJt tjtj¡}| |¡y| |j¡Wntk rd|  ¡‚YnX|S)N)Útimeout) r}ÚsocketZcreate_connectionr~ÚAF_UNIXÚ SOCK_STREAMZ settimeoutÚconnectÚOSErrorr,)r r…rrrrÚ makeSocket s  zSocketHandler.makeSocketcCs–t ¡}|jdkrd}n ||jk}|r’y| ¡|_d|_WnVtk r|jdkr^|j|_n"|j|j|_|j|jkr€|j|_||j|_YnXdS)NT) rSrr‹rrŠr‚Z retryPeriodr„rƒ)r ZnowZattemptrrrÚ createSockets       zSocketHandler.createSocketcCsR|jdkr| ¡|jrNy|j |¡Wn$tk rL|j ¡d|_YnXdS)N)rrŒÚsendallrŠr,)r rorrrÚsend6s  zSocketHandler.sendcCsj|j}|r| |¡}t|jƒ}| ¡|d<d|d<d|d<| dd¡t |d¡}t  dt |ƒ¡}||S)Nr8ÚargsÚexc_infoÚmessager)z>L) rr4ÚdictÚ__dict__Z getMessageÚpopÚpickleÚdumpsÚstructÚpackr7)r rZeiZdummyÚdroZslenrrrÚ makePickleIs     zSocketHandler.makePicklecCs0|jr|jr|j ¡d|_ntj ||¡dS)N)r€rr,rr{r)r rrrrr_s  zSocketHandler.handleErrorcCs<y| |¡}| |¡Wntk r6| |¡YnXdS)N)ršrŽrr)r rrorrrrms  zSocketHandler.emitcCs@| ¡z(|j}|r"d|_| ¡tj |¡Wd| ¡XdS)N)Úacquirerr,rr{Úrelease)r rrrrr,|szSocketHandler.closeN)r)) r"r#r$rr‹rŒrŽršrrr,rrrrrzãs  rzc@s$eZdZdd„Zdd„Zdd„ZdS)ÚDatagramHandlercCst |||¡d|_dS)NF)rzrr€)r r|r}rrrr•szDatagramHandler.__init__cCs*|jdkrtj}ntj}t |tj¡}|S)N)r}r†r‡ZAF_INETÚ SOCK_DGRAM)r Zfamilyrorrrr‹œs  zDatagramHandler.makeSocketcCs&|jdkr| ¡|j ||j¡dS)N)rrŒÚsendtor~)r rorrrrލs zDatagramHandler.sendN)r"r#r$rr‹rŽrrrrrŠs  rc@seZdZdZdZdZdZdZdZdZ dZ dZ dZ dZ dZdZdZdZdZd Zd Zd Zd Zd ZdZdZdZdZdZdZdZeeee eeee eeeedœ Zeeeeee ee eeee eeeeeeeeedœZ ddddddœZ!de"fe dfdd „Z#d!d"„Z$d#d$„Z%d%d&„Z&d'd(„Z'd)Z(d*Z)d+d,„Z*dS)-Ú SysLogHandlerrr)r3rWrXrYrZr[éé é é éééééééé) ZalertZcritÚcriticalÚdebugZemergÚerrÚerrorÚinfoZnoticeZpanicÚwarnÚwarning)ZauthZauthprivZcronÚdaemonZftpZkernZlprZmailZnewsZsecurityZsyslogÚuserZuucpZlocal0Zlocal1Zlocal2Zlocal3Zlocal4Zlocal5Zlocal6Zlocal7r®r±r³r°r­)ÚDEBUGÚINFOÚWARNINGÚERRORÚCRITICALZ localhostNc Cs0tj |¡||_||_||_t|tƒrTd|_y|  |¡Wnt k rPYnXnØd|_|dkrht j }|\}}t   ||d|¡}|sŒt dƒ‚x„|D]|}|\}}} } } d} } y(t   ||| ¡} |t jkrÐ|  | ¡PWq’t k r }z|} | dk rü|  ¡Wdd}~XYq’Xq’W| dk r | ‚| |_ ||_dS)NTFrz!getaddrinfo returns an empty list)rr{rr~ÚfacilityÚsocktypeÚ isinstanceÚstrÚ unixsocketÚ_connect_unixsocketrŠr†ržZ getaddrinforˆr‰r,)r r~r»r¼r|r}ZressZresÚafÚprotoÚ_Zsar¯rÚexcrrrrsB      zSysLogHandler.__init__c Cs¸|j}|dkrtj}t tj|¡|_y|j |¡||_Wnxtk r²|j ¡|jdk r`‚tj}t tj|¡|_y|j |¡||_Wn tk r¬|j ¡‚YnXYnXdS)N)r¼r†ržr‡r‰rŠr,rˆ)r r~Z use_socktyperrrrÀQs&       z!SysLogHandler._connect_unixsocketcCs4t|tƒr|j|}t|tƒr(|j|}|d>|BS)NrW)r½r¾Úfacility_namesÚpriority_names)r r»ÚpriorityrrrÚencodePriorityis     zSysLogHandler.encodePrioritycCs2| ¡z|j ¡tj |¡Wd| ¡XdS)N)r›r†r,rr{rœ)r rrrr,vs  zSysLogHandler.closecCs|j |d¡S)Nr³)Ú priority_mapÚget)r Z levelNamerrrÚ mapPriorityszSysLogHandler.mapPriorityÚTcCsyÜ| |¡}|jr|j|}|jr*|d7}d| |j| |j¡¡}| d¡}| d¡}||}|jr°y|j   |¡WqÚt k r¬|j   ¡|  |j¡|j   |¡YqÚXn*|jt jkrÎ|j  ||j¡n |j  |¡Wntk rú| |¡YnXdS)Núz<%d>zutf-8)r4ÚidentÚ append_nulrÈr»rËZ levelnameÚencoder¿r†rŽrŠr,rÀr~r¼ržrŸrrr)r rr8ZpriorrrrŽs.        zSysLogHandler.emit)+r"r#r$Z LOG_EMERGZ LOG_ALERTZLOG_CRITZLOG_ERRZ LOG_WARNINGZ LOG_NOTICEZLOG_INFOZ LOG_DEBUGZLOG_KERNZLOG_USERZLOG_MAILZ LOG_DAEMONZLOG_AUTHZ LOG_SYSLOGZLOG_LPRZLOG_NEWSZLOG_UUCPZLOG_CRONZ LOG_AUTHPRIVZLOG_FTPZ LOG_LOCAL0Z LOG_LOCAL1Z LOG_LOCAL2Z LOG_LOCAL3Z LOG_LOCAL4Z LOG_LOCAL5Z LOG_LOCAL6Z LOG_LOCAL7rÆrÅrÉÚSYSLOG_UDP_PORTrrÀrÈr,rËrÎrÏrrrrrr ´s–5   r c@s&eZdZd dd„Zdd„Zdd„ZdS) Ú SMTPHandlerNç@cCsŠtj |¡t|ttfƒr(|\|_|_n|d|_|_t|ttfƒrR|\|_|_ nd|_||_ t|t ƒrn|g}||_ ||_ ||_||_dS)N)rr{rr½ÚlistÚtupleÚmailhostÚmailportÚusernameÚpasswordÚfromaddrr¾ÚtoaddrsÚsubjectÚsecurer…)r rÖrÚrÛrÜÚ credentialsrÝr…rrrr¶s  zSMTPHandler.__init__cCs|jS)N)rÜ)r rrrrÚ getSubjectÙszSMTPHandler.getSubjectcCsyÞddl}ddlm}ddl}|j}|s.|j}|j|j||jd}|ƒ}|j |d<d  |j ¡|d<|  |¡|d<|j  ¡|d<| | |¡¡|jrÊ|jdk rº| ¡|j|jŽ| ¡| |j|j¡| |¡| ¡Wntk rü| |¡YnXdS) Nr)Ú EmailMessage)r…ZFromú,ZToZSubjectZDate)ÚsmtplibZ email.messageràZ email.utilsr×Z SMTP_PORTZSMTPrÖr…rÚrkrÛrßZutilsr]Z set_contentr4rØrÝZehloZstarttlsZloginrÙZ send_messageÚquitrr)r rrâràZemailr}Zsmtpr8rrrrâs0      zSMTPHandler.emit)NNrÓ)r"r#r$rrßrrrrrrÒ²s " rÒc@s>eZdZddd„Zdd„Zdd„Zd d „Zd d „Zd d„ZdS)ÚNTEventLogHandlerNÚ Applicationc CsÜtj |¡y¨ddl}ddl}||_||_|s`tj  |jj ¡}tj  |d¡}tj  |dd¡}||_ ||_ |j |||¡|j|_tj|jtj|jtj|jtj|jtj|ji|_Wn"tk rÖtdƒd|_YnXdS)Nrzwin32service.pydzWThe Python Win32 extensions for NT (service, event logging) appear not to be available.)rr{rÚwin32evtlogutilÚ win32evtlogÚappnameÚ_welurrrgÚ__file__rkÚdllnameÚlogtypeZAddSourceToRegistryZEVENTLOG_ERROR_TYPEÚdeftyper¶ZEVENTLOG_INFORMATION_TYPEr·r¸ZEVENTLOG_WARNING_TYPEr¹rºÚtypemapÚ ImportErrorÚprint)r rèrërìrærçrrrr s* zNTEventLogHandler.__init__cCsdS)Nr)r)r rrrrÚ getMessageID&szNTEventLogHandler.getMessageIDcCsdS)Nrr)r rrrrÚgetEventCategory0sz"NTEventLogHandler.getEventCategorycCs|j |j|j¡S)N)rîrÊÚlevelnorí)r rrrrÚ getEventType9s zNTEventLogHandler.getEventTypecCsn|jrjyD| |¡}| |¡}| |¡}| |¡}|j |j||||g¡Wntk rh| |¡YnXdS)N) rérñròrôr4Z ReportEventrèrr)r rÚidÚcatÚtyper8rrrrFs    zNTEventLogHandler.emitcCstj |¡dS)N)rr{r,)r rrrr,Ws zNTEventLogHandler.close)Nrå) r"r#r$rrñròrôrr,rrrrräs     räc@s&eZdZd dd„Zdd„Zdd „ZdS) Ú HTTPHandlerÚGETFNcCs`tj |¡| ¡}|dkr$tdƒ‚|s8|dk r8tdƒ‚||_||_||_||_||_ ||_ dS)N)rùÚPOSTzmethod must be GET or POSTz3context parameter only makes sense with secure=True) rr{rrDrLr|ÚurlÚmethodrÝrÞÚcontext)r r|rûrürÝrÞrýrrrris  zHTTPHandler.__init__cCs|jS)N)r“)r rrrrÚ mapLogRecord}szHTTPHandler.mapLogRecordc CsxyPddl}ddl}|j}|jr4|jj||jd}n |j |¡}|j}|j   |  |¡¡}|j dkrŠ|  d¡dkrvd}nd}|d||f}| |j |¡|  d¡} | dkr¶|d| …}|j dkrà| d d ¡| d tt|ƒƒ¡|jr$ddl} d |j d ¡} d|  | ¡ ¡ d¡} | d| ¡| ¡|j dkrH| | d ¡¡| ¡Wn tk rr| |¡YnXdS)Nr)rýrùú?ú&z%c%sú:rúz Content-typez!application/x-www-form-urlencodedzContent-lengthz%s:%szutf-8zBasic ÚasciiZ Authorization)Z http.clientZ urllib.parser|rÝZclientZHTTPSConnectionrýZHTTPConnectionrûÚparseZ urlencoderþrüÚfindZ putrequestZ putheaderr¾r7rÞÚbase64rÐZ b64encodeÚstripÚdecodeZ endheadersrŽZ getresponserr) r rZhttpZurllibr|r:rûÚdataÚsepr1rrorrrr…s@        zHTTPHandler.emit)rùFNN)r"r#r$rrþrrrrrrøds røc@s4eZdZdd„Zdd„Zdd„Zdd„Zd d „Zd S) ÚBufferingHandlercCstj |¡||_g|_dS)N)rr{rÚcapacityÚbuffer)r r rrrr¹s zBufferingHandler.__init__cCst|jƒ|jkS)N)r7r r )r rrrrÚ shouldFlushÁszBufferingHandler.shouldFlushcCs"|j |¡| |¡r| ¡dS)N)r rjr rx)r rrrrrÊs  zBufferingHandler.emitcCs"| ¡z g|_Wd| ¡XdS)N)r›r rœ)r rrrrxÕs zBufferingHandler.flushc Cs z | ¡Wdtj |¡XdS)N)rxrr{r,)r rrrr,ás zBufferingHandler.closeN)r"r#r$rr rrxr,rrrrr ³s    r c@s>eZdZejddfdd„Zdd„Zdd„Zd d „Zd d „Z dS) Ú MemoryHandlerNTcCs"t ||¡||_||_||_dS)N)r rÚ flushLevelÚtargetÚ flushOnClose)r r rrrrrrròs zMemoryHandler.__init__cCst|jƒ|jkp|j|jkS)N)r7r r rór)r rrrrr szMemoryHandler.shouldFlushcCs ||_dS)N)r)r rrrrÚ setTarget szMemoryHandler.setTargetcCsD| ¡z,|jr2x|jD]}|j |¡qWg|_Wd| ¡XdS)N)r›rr Úhandlerœ)r rrrrrxs  zMemoryHandler.flushcCsBz|jr| ¡Wd| ¡zd|_t |¡Wd| ¡XXdS)N)rrxr›rr r,rœ)r rrrr,$s zMemoryHandler.close) r"r#r$rr¹rr rrxr,rrrrrìs  rc@s,eZdZdd„Zdd„Zdd„Zdd„Zd S) Ú QueueHandlercCstj |¡||_dS)N)rr{rÚqueue)r rrrrr@s zQueueHandler.__init__cCs|j |¡dS)N)rÚ put_nowait)r rrrrÚenqueueGszQueueHandler.enqueuecCs6| |¡}t |¡}||_||_d|_d|_d|_|S)N)r4Úcopyr‘r8rrZexc_text)r rr8rrrÚprepareQs  zQueueHandler.preparecCs8y| | |¡¡Wntk r2| |¡YnXdS)N)rrrr)r rrrrrnszQueueHandler.emitN)r"r#r$rrrrrrrrr5s  rc@sVeZdZdZddœdd„Zdd„Zdd „Zd d „Zd d „Zdd„Z dd„Z dd„Z dS)Ú QueueListenerNF)Úrespect_handler_levelcGs||_||_d|_||_dS)N)rÚhandlersÚ_threadr)r rrrrrrr‚szQueueListener.__init__cCs |j |¡S)N)rrÊ)r ÚblockrrrÚdequeueŒszQueueListener.dequeuecCs&tj|jd|_}d|_| ¡dS)N)rT)Ú threadingZThreadÚ_monitorrr´Ústart)r rVrrrr"•szQueueListener.startcCs|S)Nr)r rrrrr szQueueListener.preparecCsD| |¡}x4|jD]*}|js"d}n |j|jk}|r| |¡qWdS)NT)rrrróÚlevelr)r rZhandlerZprocessrrrrªs   zQueueListener.handlecCsp|j}t|dƒ}xZy<| d¡}||jkr6|r4| ¡P| |¡|rL| ¡Wqtjk rfPYqXqWdS)NÚ task_doneT)rÚhasattrrÚ _sentinelr$rZEmpty)r ÚqZ has_task_donerrrrr!ºs     zQueueListener._monitorcCs|j |j¡dS)N)rrr&)r rrrÚenqueue_sentinelÑszQueueListener.enqueue_sentinelcCs| ¡|j ¡d|_dS)N)r(rrk)r rrrÚstopÛs zQueueListener.stop) r"r#r$r&rrr"rrr!r(r)rrrrrzs     r)&rr†rr•r—rSrOrRrrrrr rZDEFAULT_TCP_LOGGING_PORTZDEFAULT_UDP_LOGGING_PORTZDEFAULT_HTTP_LOGGING_PORTZDEFAULT_SOAP_LOGGING_PORTrÑZSYSLOG_TCP_PORTr^rrr%r9rpr{rzrr rÒrärør rrÚobjectrrrrrÚs:8FL`E(*PbO9IE