3e      a                             .  1   5 5 5  1            ! " #$ % & ' ( )*+ ,- ./ 01 2 3 a4 15 .56 7 89 8:; <= >? @A BC DE aF )GH mI mJ KL MN MI O PQ uR uS TU yV mWX yYZ[\]^_`  a bc )d ef gh gijk 5lmnopqrs t 5uvw xyz {|} ~    y   5                   m 8 m )    a    a          actionAggregatorLjava/util/Map; Signature6Ljava/util/Map;searchAggregatoruserAggregatoritemAggregator archiveStats warnCountIexcCount lineCountgeneralSummaryLjava/util/List;$Ljava/util/List; excludeWords excludeTypes excludeChars itemTypes searchFloor itemFloor itemLookup userEmailLjava/lang/String;urlnamehostNameviews excludeCharRXLjava/util/regex/Pattern;handleRXitemRXqueryRX collectionRX communityRX resultsRXsingleRXvalid13 validBasevalid14logRegexcommentrealtypeRXwordRX startTimeLjava/util/Calendar;logDir fileTemplate configFileoutFile startDateLjava/util/Date;endDate logStartDate logEndDate()VCodeLineNumberTableLocalVariableTablethis'Lorg/dspace/app/statistics/LogAnalyser;main([Ljava/lang/String;)Viargv[Ljava/lang/String;contextLorg/dspace/core/Context;myLogDirmyFileTemplate myConfigFile myOutFile myStartDate myEndDatemyLookUpZ StackMapTableT;Q Exceptions processLogs(Lorg/dspace/core/Context;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Date;Ljava/util/Date;Z)Ljava/lang/String;eLjava/io/IOException;jwordshandle matchHandleLjava/util/regex/Matcher; matchItemlogLine#Lorg/dspace/app/statistics/LogLine;line matchRegexavgLjava/lang/Double;frLjava/io/FileReader;brLjava/io/BufferedReader;logFiles[Ljava/io/File; |  setParametersl(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Date;Ljava/util/Date;Z)V createOutput()Ljava/lang/String;keyoutLjava/io/BufferedWriter;summaryLjava/lang/StringBuffer;keysLjava/util/Iterator;sdfLjava/text/SimpleDateFormat;addressendTime timeInMillisJLocalVariableTypeTable(Ljava/util/Iterator;U_ getLogFiles#(Ljava/lang/String;)[Ljava/io/File;logsLjava/io/File;setRegex(Ljava/lang/String;)V charRegEx logLineBase logLine13 logLine14 typeRXString wordRXString getConfigFile readConfigvalue matchComment matchRealrecord increment6(Ljava/util/Map;Ljava/lang/String;)Ljava/lang/Integer;mapnewValueLjava/lang/Integer;H](Ljava/util/Map;Ljava/lang/String;)Ljava/lang/Integer; parseDate$(Ljava/lang/String;)Ljava/util/Date;Ljava/text/ParseException;date parsedDate unParseDate$(Ljava/util/Date;)Ljava/lang/String; analyseQuery'(Ljava/lang/String;)[Ljava/lang/String;query matchQuerymatchCollectionmatchCommunity matchResults matchTypes matchChars matchWordssinglestLjava/util/StringTokenizer; getLogLine7(Ljava/lang/String;)Lorg/dspace/app/statistics/LogLine;match getNumItems@(Lorg/dspace/core/Context;Ljava/lang/String;)Ljava/lang/Integer;type discoverQuery$Lorg/dspace/discovery/DiscoverQuery;accessionedQueryLjava/lang/StringBuilder;.(Lorg/dspace/core/Context;)Ljava/lang/Integer;usage SourceFileLogAnalyser.java IJjava/util/GregorianCalendar >?org/dspace/core/Context J-log -file-cfg-out-help J -start -end-lookup ghjava/util/HashMap     java/util/ArrayList    ! " #  B(  A(  @(  9.   java/io/FileReader  Ijava/io/BufferedReader Ijava/io/IOException java/lang/StringBuilderFailed to read log file     DE  FE    GE   HEWARN   ERROR  search     login '(off  view_item /.  0.  J All Items   java/lang/String dspace.hostname  +( dspace.name *( dspace.url )(/   !java/lang/Integer " #$% &'( )* , java/util/Date +, I- C(java/lang/StringBuffer log_lines= . / warnings= exceptions=general_summary= server_name= service_name=java/text/SimpleDateFormatdd'/'MM'/'yyyy start_date= 0 end_date= 123 45 6 78archive.= 9action. user_email=user.onaliasAddress  search_floor= $ :search. item_floor= % host_url= item_lookup= &item.avg_item_views= ;,analysis_process_time=< =java/io/BufferedWriterjava/io/FileWriter I> ? @JUnable to write to output file  java/io/File A'Passed log directory is not a directory BC[\] DE -.handle= ,item_id=.*$query= 1.collection_id=[0-9]*, 2.community_id=[0-9]*, 3. ,results=(.*) 4. ( . |^. | .$) 5.?^(\d\d\d\d-\d\d\-\d\d) \d\d:\d\d:\d\d,\d\d\d (\w+)\s+\S+ @ (.*)U^(\d\d\d\d-\d\d\-\d\d) \d\d:\d\d:\d\d,\d\d\d (\w+)\s+\S+ @ ([^:]+):[^:]+:([^:]+):(.*)[^(\d\d\d\d-\d\d\-\d\d) \d\d:\d\d:\d\d,\d\d\d (\w+)\s+\S+ @ ([^:]+):[^:]+:[^:]+:([^:]+):(.*) 6. 8. 7.(|) <. ^$ =.Failed to read config file: :. ;. F.general.summary )G H exclude.word exclude.typeexclude.character item.type item.floor IJ search.floor item.lookup user.email Kyyyy'-'MM'-'dd Ljava/text/ParseException%The date is not in the correct formatyyyy'-'MM'-'dd'T'hh:mm:ss'Z'UTCM NO PQ Rjava/util/StringTokenizer S T:ip_addr UJ!org/dspace/app/statistics/LogLineV W IX"org/dspace/discovery/DiscoverQueryY Z[dc.type=* \Qdc.date.accessioned_dt:[  TO withdrawn: falsearchived: true] ^_` $ab c,Usage Information: LogAnalyser [options [parameters]] -log [log directory] Optional Specify a directory containing log files Default uses [dspace.dir]/log from dspace.cfg -file [file name regex] Optional Specify a regular expression as the file name template. Currently this needs to be correctly escaped for Java string handling (FIXME) Default uses dspace.log* -cfg [config file path] Optional Specify a config file to be used Default uses dstat.cfg in dspace config directory -out [output file path] Optional Specify an output file to write results into Default uses dstat.dat in dspace log directory -start [YYYY-MM-DD] Optional Specify the start date of the analysis If a start date is specified then no attempt to gather current database statistics will be made unless -lookup is also passed Default is to start from the earliest date records exist for -end [YYYY-MM-DD] Optional Specify the end date of the analysis If an end date is specified then no attempt to gather current database statistics will be made unless -lookup is also passed Default is to work up to the last date records exist for -lookup Optional Force a lookup of the current database statistics Only needs to be used if date constraints are also in place -help display this usage information ^# ^(.+)=(.+)log.report.dir dspace\.log.* dspace.dir d(config dstat.cfg dstat.dat%org/dspace/app/statistics/LogAnalyserjava/lang/Objectjava/lang/Exceptionjava/sql/SQLExceptionjava/util/regex/Matcher+org/dspace/discovery/SearchServiceExceptionjava/util/Iteratorjava/util/CalendarturnOffAuthorisationSystemequals(Ljava/lang/Object;)Zjava/lang/Systemexit(I)VgetNamejava/util/regex/Patternmatcher3(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;matches()ZtoString(Ljava/io/Reader;)VLjava/io/PrintStream;append-(Ljava/lang/String;)Ljava/lang/StringBuilder;java/io/PrintStreamprintlnreadLine afterDate(Ljava/util/Date;)Z beforeDategetDate()Ljava/util/Date;isLevel(Ljava/lang/String;)Z getActionisAction getParams java/util/Mapput8(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;getUser replaceAll&(Ljava/lang/String;)Ljava/lang/String;trimclosejava/util/Listsize()Iget(I)Ljava/lang/Object;$org/dspace/core/ConfigurationManager getPropertyendsWith&(Ljava/lang/Object;)Ljava/lang/Object;intValue doubleValue()Djava/lang/Mathceil(D)Djava/lang/DoublevalueOf(D)Ljava/lang/Double;getTime()J(J)V(I)Ljava/lang/String;,(Ljava/lang/String;)Ljava/lang/StringBuffer;formatkeySet()Ljava/util/Set; java/util/Setiterator()Ljava/util/Iterator;hasNextnext()Ljava/lang/Object;-(Ljava/lang/Object;)Ljava/lang/StringBuilder;(I)Ljava/lang/StringBuilder;getTimeInMillisjava/lang/Long(J)Ljava/lang/String;(Ljava/io/Writer;)Vwriteflush isDirectory listFiles()[Ljava/io/File;compile-(Ljava/lang/String;)Ljava/util/regex/Pattern;group(I)Ljava/lang/Integer;addparseInt(Ljava/lang/String;)I containsKeyparsejava/util/TimeZone getTimeZone((Ljava/lang/String;)Ljava/util/TimeZone; setTimeZone(Ljava/util/TimeZone;)V toLowerCase countTokens nextTokenindexOforg/dspace/core/LogManagerunescapeLogField[(Ljava/util/Date;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V$org/apache/commons/lang3/StringUtils isNotBlank(Ljava/lang/CharSequence;)ZaddFilterQueries org/dspace/discovery/SearchUtilsgetSearchService&()Lorg/dspace/discovery/SearchService;"org/dspace/discovery/SearchServiced(Lorg/dspace/core/Context;Lorg/dspace/discovery/DiscoverQuery;)Lorg/dspace/discovery/DiscoverResult;#org/dspace/discovery/DiscoverResultgetTotalSearchResults separator!.            ! " # $ % & '( )( *( +( , -. /. 0. 1. 2. 3. 4. 5. 6. 7. 8. 9.:.;. <. =. >? @( A( B( C( DE FE GE HEIJK/*L-M NO PQK YYL+MN::::66  ** 2 * `2M* 2 * `2N* 2 * `2:* 2 * `2:* 2 * 2 * `2:* 2 * `2:* 2 6 X+,-WL~  #&)3?FRYemy  Mf ,R STUVW(X(Y( Z(#[E&\E)]^_. , `abbbbccdef ghKzYYYYYYYYY Y!Y"+,-#:: $%&'(): 6 6   *  2+,:  -.Y  2/0:1Y2: ): 45Y678  2/89::  ;Y:  <:==>ز??@dA`A='BB@CB CB?'DD>CD CDEF G`GHF I`IJ8KL7MN:6"22OPWQL'RS TTOPWULFM:V,:WX:Y,:WXZ:OPWJJOPWc [\ ]*^PW6  "_-" `*" `abPW cdZefdZghdZii&ijk5Y6i8j89i]lmn4Ulmo]lmoopq:  rst3L^W9 <=>(?2@<CFDPEZFdGnJ|MNRVY\dghnouqst{|,/@CKQWbmu{ ";ELV_iud/ GZ_o{M$ij 'k*lTL<m(V2noipoqrs( to uv UVW(X(Y(Z([E\E]^wx yz {| R _ abbbbcc}~> abbbbcc}~%b*)! `&-L 6ICd3f KI**(++&,,$uYvw=uYvw?--xL6 025 7:<?A,D1F@IDKHNMHIW(IX(IY(IZ(I[EI\EI]^_ K> yYzKL*5Y6{8A|8}89~W*5Y68G|8}89~W*5Y68I|8}89~W=_1*5Y68`a8}89~W*5Y68e8}89~W*5Y68g8}89~WYM=)*5Y68,=8}89~W,B&*5Y68,B8}89~W?)*5Y68,?8}89~W,D&*5Y68,D8}89~WL+>+aN*5Y68-88-l}89~WL+>+aN*5Y68-88-l}89~W*5Y68R8}89~W>L++a:*~WR 1*5Y688l}89~WCR 8*5Y68|88l}89~Wl*5Y68}89~WL+W+a:lmn3*5Y6888l}89~W*5Y68}89~W*5Y68i8}89~W*5Y68}89~WL+W+a:lmn3*5Y6888l}89~Ws"*5Y68s}89~WY:e7*5Y68m8}89~WYYx:*$:45Y68x89:*3LFY\ _,bNcpf~hflortv x&zI}Ou{?Bacqz'5>I_'WZ`Mr:R.(.((IF(F(ij c?t  _Tr9s(+( C C.Sb?,YjY$d Ks!Y*L+4:+L M!@( _ KDٻyYzL+~W=!_+~!`a~W+~W+VY¸ĸMN:-,**yYz:̶~W6 _) Ͷ~W `a~Wζ~WϻyYz:̶~W6_ Ͷ~W5Y6ж8`a8ж89~WͶ~W5Y6Ѷ8`a8ж89~WͶ~W5Y6ж8`a8Ҷ89~WUζ~WӱL,39@JR"Z%b(j+r.z1456789<?@ACEGAIJM NO$Q)S1U[VcWXYO[\^Mf (R3RRA(T(Q(M(' _5'bbbb& K$Lg JK#$%L pqd3 K?YYYYYYYY Y!Y"LMN.Y*0L1Y+2M":45Y6Զ8*89:,;YN-,:-,:--׶Z:׶Z:ض ٹPWW۶ Wܶ  Wݶ !W޶ "W߶    R,[+\j|3L0| }~(2<FPZdfhjs| "-7BLWais{M\ ij((ooB(fBwxh@yzj>(_S b}~bdb}~bbbb}~bd3 K)M*+*+lmn`MM,L "'M ))(' )_ " K$YLM+*MN4:, L"     "M* i$(  E_bc KUYL++*L ME  K <*K*,M,жXK*,N-жXK*,:жXK*,:жXK*,:жXK*,:жXK*,:жXK*,:  жXKY*:  a: <   ZS Lb/378:;%=.>6@?AGCPDXFaGiIrJzLMQRSUSZMz (Roo.o?~oPmoa\orKo:o ( lT _, b` K9**,L *,L+-DY+׶Z+׸Z+׸Z+׸Z+׸ZM,*,L+-&Y+׶Z+׸ZM,LBl nru#x4y?zJ{U|b~dlsM4obqrqrs(|o_ G1 Ka»YM+&,aY5Y68+889S5Y6N-8W=-=8W -8W-8W?-?8W -8W-8W,aY-9S,aYS,aYS*,ٰLF2:AGU\ciw~M*UV(:_2"df K0*bLM UVdf JK> K4*:L M (JKVGIAsVY*d( &5Y6 d8 8 8 8 89$5Y6d8 889x=?BDLvHKN y $(,048<@IRVZ^gm