JFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3RbrJFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr3 c8h<@sFddlZddlZddlmZmZddlmZGdddZddZdS)N)ustrsstr)configc@sHeZdZdZddZddZddZdd Zd d Zd d Z ddZ dS)Logz attempt to log all interesting stuff, namely, anything that hits the network any error messages, package installs, etc cCsd|_tj|_d|_dS)NZup2date)apprZinitUp2dateConfigcfglog_info)selfr /usr/lib/python3.6/up2dateLog.py__init__ s z Log.__init__cCst||_dS)N)strr)r namer r r set_app_nameszLog.set_app_namecGs |jddkr|jd|dS)NdebugD: )r)rlog_me)r argsr r r log_debugsz Log.log_debugcGsddtjtj|jf|_d}x |D]}tt|}||7}q$W|jddkrVt||j|dS)zHGeneral logging function. Eg: log_me("I am a banana.") z[%s] %srrrN) timectimerr rrrprint write_log)r rsir r r rs   z Log.log_mecCs@dtjtj|jf|_tj}djtj|}|j|dS)Nz[%s] %sr) rrrr traceback extract_stackjoin format_listr)r xmsgr r r trace_me)sz Log.trace_mecCsddtjtj|jf|_dg}|jd|tjtj|}|jd||f|jdj |dS)Nz[%s] %s z#Traceback (most recent call last): z%s: %s r) rrrr appendrr extract_tbrr)r Zlogtypevaluetboutputr r r log_exception/s  zLog.log_exceptioncCsP|jdp d}t|d}dt|jt|f}|jt||j|jdS)NZlogFilez/var/log/up2dateaz%s %s )ropenrr writerflushclose)r rZlog_nameZlog_filer"r r r r7s  z Log.write_logN) __name__ __module__ __qualname____doc__r rrrr#r*rr r r r rsrc Cs4ytaWntk r daYnXtdkr0tatS)N)log NameErrorrr r r r initLog@s r6) rrZrhn.i18nrrZup2date_clientrrr6r r r r s  8