a ƒ¬ i^ ã@s®ddlmZddlZddlZddlZddlZddlZddlmZm Z e  d¡Z dd„Z dd d „Z dd d „Zdd d„Zddd„Zddd„Zdd„Zdd„Zdd„Zd dd„ZdS)!é)Úprint_functionNé)ÚconfigÚ constantsÚkcarecCst|tjƒt |¡dS©N)Ú _printlvlrÚ PRINT_DEBUGÚkcarelogÚdebug)Úmessage©r ú//usr/libexec/kcare/python/kcarectl/log_utils.pyÚlogdebugs rTcCs|rt|tjƒt |¡dSr)rrÚ PRINT_INFOr Úinfo©r Ú print_msgr r rÚloginfos rcCs$|rt|tjtjdt |¡dS©N)Úfile)rrÚ PRINT_WARNÚsysÚstderrr Úwarningrr r rÚlogwarnsrcCs$|rt|tjtjdt |¡dSr)rrÚ PRINT_ERRORrrr Úerrorrr r rÚlogerror%srcCs&|rtjtjkrt ¡t |¡dSr)rrrÚ PRINT_LEVELÚ tracebackÚ print_excr Ú exceptionrr r rÚlogexc+sr#cCs|tjkrt||ddSr)rrÚprint)r Úlevelrr r rr1s rcCs:t d¡}tjjdtjjjd}| tj¡| |¡|S)Nz kcare %(levelname)s: %(message)sú/dev/log)ÚaddressZfacility)ÚloggingÚ FormatterÚhandlersZ SysLogHandlerZLOG_USERÚsetLevelÚINFOÚ setFormatter)Zsyslog_formatterÚsyslog_handlerr r rÚget_syslog_handler6s    r/cCsnt d¡}t ¡dkrJtjjtjddd}| t |tj ƒ¡|  |¡|St  ¡}| |¡|  |¡|SdS)Nz&%(asctime)s %(levelname)s: %(message)srié)ZmaxBytesZ backupCount) r(r)ÚosÚgetuidr*ZRotatingFileHandlerrÚLOG_FILEr+Úminr,r-Ú StreamHandler)r%Zkcare_formatterÚ kcare_handlerr r rÚget_kcare_handler>s  ÿ   r7c Cs¨gtjdd…<zt|ƒ}t |¡Wn.tyR}zt |¡WYd}~n d}~00tj d¡r¤zt ƒ}t |¡Wn.ty¢}zt |¡WYd}~n d}~00dS)Nr&) r r*r7Ú addHandlerÚ Exceptionr"r1ÚpathÚexistsr/)r%r6Úexr.r r rÚinitialize_loggingOs  r=cCs"|pd}td |t|ƒ¡|ƒdS)Nzz8Unable to fetch {0}. Please try again later (error: {1}))rÚformatÚstr)r<ÚurlÚstdoutr r rÚprint_cln_http_error`srB)T)T)T)T)N)NT)Ú __future__rr(Zlogging.handlersr1rr ÚrrÚ getLoggerr rrrrr#rr/r7r=rBr r r rÚs"