Ƣ2ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl m Z m Z ddl m Z ddlZddlZddlmZmZddlmZddlmZddlmZddlmZmZdd lmZejd d Zej e!Z"d#d Z#GddZ$e ddZ%dZ&dZ'dZ(dZ)dZ*dZ+dZ,dZ-de.fdZ/dZ0dZ1e de.fdZ2e de.fd Z3Gd!d"Z4dS)$N)contextmanagersuppress) lru_cache)configsentry) AcronisBackup)Logger)Sentry)antivirus_mode is_root_user)tagsIMUNIFY360_LOGGING_PREFIXFc tj}n#ttf$rd}YnwxYw|rt jtj|tjj dt j 5}tj D]\}}|||dtjdi|_dddn #1swxYwYdddSd d dS) NTon)dsndebugreleaseattach_stacktraceid server_idERRORz-sentry_sdk.integrations.logging.SentryHandler)levelclassNOTSETzlogging.NullHandler)r ENABLEKeyErrorAssertionError sentry_sdkinitDSNrCoreVERSIONconfigure_scoperr itemsset_tagtaguser)rerror_reportingscoper'values U/opt/imunify360/venv/lib/python3.11/site-packages/defence360agent/internals/logger.py _sentry_initr-sR - n %  K'"      ' ) ) 9U$kmm1133 * * U c5)))) ; 7 78EJ 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 D   *   s %%.ACCCcHeZdZdejjzZedZdZ dS)_LoggerDynConfigz /var/log/%scxdtjjdtjpt jS)Nz /var/log/z _user_logs/)rr"PRODUCTgetpassgetuserosgetuidr, _user_log_dirz_LoggerDynConfig._user_log_dir:s7 K    O   , ,  r7cdtr|jn||_dgddgddgdddt ddd|jzd d d ddd |jzd d d ddd |jzd d d ddd|jzd d d ddd|jzd d d dddddddd|jzd d dddgdddddt diddt didd id!d"d#|_dgd|jd$d%<ddtj |jtj d d d|jd&d'<dS)(NDEBUG)rhandlersINFO)network"defence360agent.internals.the_sink event_hookWARNING abstimestampz %s/error.logzlogging.FileHandlerutf8)r formatterfilenamerencodingz%s/network.logz %s/debug.logz%s/console.log eventhookz %s/hook.logzlogging.StreamHandlerzext://sys.stderr)rDrstreamr reltimestampz%s/process_message.log)rDrrErrF)r error_log network_log debug_log console_loghook_logconsoleprocess_message_logr)rMrJrlogsformatz*%(levelname)-7s [+%(relativeCreated)5dms] z%(name)50s|%(message)sz%(levelname)-7s [%(asctime)s] z%(name)s: %(message)sz%(created)d : %(message)s)rIrBrGF)loggersversionr;rootmkdir formattersdisable_existing_loggersrSAcronisClientInstallerr;acronis_installer_log) r _ROOT_LOG_DIRr8log_dirr-PREFIXmutableDictConfigr4pathjoinrLOG_NAMEselfs r,__init__z_LoggerDynConfig.__init__Asd"... JD  d6H6H6J6J % " % "77 $ " &..&!/ . =2 & %!/ 04< ?2 &   %!/ . =2 & $!/ 04< ?2 &   $!, - <2 & "040# "0 % 84< G2 & ( (W77r":!:::!''''! '(CD).Gd" d" NG G y)*BC ( T\=3IJJ*G G z*+BCCCr7N) __name__ __module__ __qualname__rr"r1r[ staticmethodr8rdr6r7r,r/r/7sP!FK$77M  \ w w w w w r7r/r@ctSN)r/r6r7r, _late_initrks   r7ctt5tjdcdddS#1swxYwYdS)ay :return bool: True if python interpreter is being run in CageFS container, otherwise False :raise: never Current implementation simply checks "/var/.cagefs" presence, as Anton Volkov consulted us to do. Placing this function not in 'subsys' package, because 'logger' module is one of cornerstones dependency for 'subsys' package as well. z /var/.cagefsN)rOSErrorr4r_existsr6r7r,_we_are_in_cagefsros '  ..w~~n--..................sAAAcd}|||tj|D]d\}}}|D],}|tj|||-|D],}|tj|||-edS)zChange file/dir modes recursively. Starting at dirname, change all inner directory permissions to dir_perm, file permissions to file_perm Permission errors are logged to stderr and are ignored in any case. c tj||dS#t$r>}tjd||Yd}~dSd}~wwxYw)Nz [WARNING] cannot chmod on {}: {})r4chmodPermissionErrorsysstderrwriterR) file_dir_path permissiones r, _os_chmodz"_chmod_log_dirs.._os_chmods  H]J / / / / /    J  299-KK          s A!3AA!N)r4walkr_r`) dirnamedir_perm file_permrzr_dirsfiles directorynames r,_chmod_log_dirsrsIgx   WW--;;dE ? ?I Ibgll433X > > > > ; ;D Ibgll4.. : : : : ;;;r7c*tjdrdS tjt j}tj|tjdt|tjtj tj t jtt _dS#t$$ret'sSt)jt jt jdtjjzYdSYdSt4$rTt)jt jt jdtjjzYdSwxYw)z> Re-catch with _LoggerDynConfig and re-open log files IMUNIFY360_DISABLE_LOGGINGTexist_ok)filez%s logger is not available. N)r4getenvr cached_fillrkr\makedirsConfig LOG_DIR_PERMr LOG_FILE_PERMloggingr dictConfigr^_log_uncaught_exceptionsrt excepthookrmro traceback print_excrurvr"r1 Exception)r\s r, reconfigurers y-..6  6      ll*G K!4t D D D D GV%8&:N O O O N % %jll&D E E E,6CNNN+   %&& #4444   3fk6II         SZ 0 0 0 0 J  /&+2EE       sBCA(F5AFFct|trtj|||dStd|||fdS)Nzuncaught exception)exc_info) issubclassKeyboardInterruptrt__excepthook__loggercritical)exc_type exc_value exc_tracebacks r,rrs`(-.. 8Y >>> OO)]'Kr7ct|5}tj|}dddn #1swxYwYtj|t dSrj)openyaml safe_loadrkr^updater)rE config_filers r,update_logging_config_from_filers h-; ,,---------------LL"))&111MMMMMs 155ctjj}tjdD].}|tj|j/d|DS)NrScg|]C}t|dr1t|jdr|jtjk<|jDS)rHfileno)hasattrrHrtru).0hs r, zget_fds..&s_    1h    AHh ' '   H " "  # " "r7)rrUr;rkr^keysextend getLogger)r;_loggers r,get_fdsr!sw|$H<<1)<AACC==)'22;<<<<     r7cldtjdDS)Nc,g|]\}}d|v |dS)rEr6)r_valuess r,rz&get_log_file_names..0s6    Av    z   r7r;)rkr^r%r6r7r,get_log_file_namesr/s;  #7 CIIKK   r7c|tjvr,tjdtj|jzStjd|zS)Nznetwork.)rtmodulesrrre)rs r,getNetworkLoggerr7sE s{ ck$.?.H!HIII d!2333r7returnc(tjS)z| Return base log directory for the product. Supposed to be used by clients to build the path to their own logs. )rkr\r6r7r,r\r\Bs << r7ctjr8tjdddd|dkr8tjdddd|dkr8tjdd dd |d kr2tjd dd tjddddt dS)NrSrYr;rZr=rKr>rPrUrLr?rN)r disabledrkr^appendr)verboses r, setLogLevelrJs* &y12JK  &( ) ) )!|| &y1)<  &   !|| &y1 0  f2333!|| &v.z:AA+NNNLL"9-l;JGNNMMMMMr7cf|tjddd<tdS)z' also results in reconfigure() r;rOrN)rkr^r) newloglevels r,setConsoleLogLevelras4 LL":.y9MMMMMr7scan_idc#JKtjtjd}t |d5}|tjdd|d|V|dddddS#1swxYwYdS)Nzaibolit_actions.loga%Y-%m-%d %H:%M:%S |  ) r4r_r`rkr\rrvtimestrftime)rr_fs r,openAibolitActionsLogrms 7<< ,.C D DD dCA 4=!455FF'FFFGGG sABBBc#zKtj}tj|dtj|d}t |d5}|tj dd|d|V|dddddS#1swxYwYdS)NTrzmds_actions.logrrrr) rkr\r4rr_r`rrvrr)rr\r_rs r,openMdsActionsLogrxsll"GK$'''' 7<<!2 3 3D dCA 4=!455FF'FFFGGG sAB00B47B4c4eZdZGddZdZdZdS)EventHookLoggercBeZdZGddZdZd dZdZdZdS) EventHookLogger._EventLoggerc8eZdZdZdZdZdZd dZdZdZ d S) (EventHookLogger._EventLogger._HookLoggerzD{uuid:s} : {action:s} {native:s}: {event:s} : {subtype:s} : {path:s}c||_|j|_|j|_|j|_|j|_||_dSrj)r_eventsubtypeuuidlognative)rcparentr_rs r,rdz1EventHookLogger._EventLogger._HookLogger.__init__s8  #\ %~ "K !:$ r7c|Srjr6rbs r, __enter__z2EventHookLogger._EventLogger._HookLogger.__enter__s r7cdSrjr6rcrexc_valexc_tbs r,__exit__z1EventHookLogger._EventLogger._HookLogger.__exit__sr7rct|j||jrdnd|j|j|jd}|jjdi|}|rd||g}| |dS)Nznative r)ractionrrrr_z : r6) strrrrrr_tplrRr`r)rcrmessagedatamsgs r,_logz-EventHookLogger._EventLogger._HookLogger._logs NN$+/;>iiB!Z#| I &dho----5**c7^44C r7c0|ddS)Nstarted)rrbs r,beginz.EventHookLogger._EventLogger._HookLogger.begins )$$$$$r7c|dkrdnd}|r$d|t|g}|rBt|tr|d}d||g}|d|dS) NrOKr:backslashreplace)errors done)r`r isinstancebytesdecoder)rc exit_codeerrrs r,finishz/EventHookLogger._EventLogger._HookLogger.finishs"+q..$$gB!hhY'@AAG8!#u--D!jj0BjCC"ii#77G &'*****r7N)r) rerfrgrrdrrrrrr6r7r, _HookLoggerrs}5   % % %            % % % + + + + +r7rcj||_||_tj|_|j|_dSrj)rrruuid4r)rcrrrs r,rdz%EventHookLogger._EventLogger.__init__s*DJ"DL DIzDHHHr7Fc2||||S)N)r)r)rcr_rs r,__call__z%EventHookLogger._EventLogger.__call__s##D$v#>> >r7c|Srjr6rbs r,rz&EventHookLogger._EventLogger.__enter__sKr7cdSrjr6rs r,rz%EventHookLogger._EventLogger.__exit__s Dr7NF)rerfrgrrdrrrr6r7r, _EventLoggerrs~0 +0 +0 +0 +0 +0 +0 +0 +d " " "  ? ? ? ?        r7r cFtjd}|j|_dS)Nr?)rrinfor)rcrs r,rdzEventHookLogger.__init__s"<00;r7c0||||Srj)r )rcrrs r,rzEventHookLogger.__call__s  ug666r7N)rerfrgr rdrr6r7r,rrsc@@@@@@@@D77777r7rr)5r2rlogging.configlogging.handlersr4rtrrr contextlibrr functoolsrrrdefence360agent.contractsrr defence360agent.contracts.configrr rr defence360agent.utilsr r defence360agent.applicationr environgetr]rrerr-r/rkrorrrrrrrrr\rrrrrr6r7r,rs  //////// 44444444::::::======333333>>>>>>>>,,,,,, 3R 8 8  8 $ $    :A A A A A A A A H 1 . . . ;;;2#6#6#6L   444     .3sH7H7H7H7H7H7H7H7H7H7r7