|
Il faut dans un premier temps, mettre en route la log dans le fichier qui définit l'instance. AccessLog HTTPLOG LogFormat DDS
Le fichier HTTPLOG sera créé dans la bibliothèque Qusrsys.
Mettez le droit *public *use dessus, et vous pouvez ensuite utiliser cette macro Netdata pour interroger
%{ Définition des variables %}
%DEFINE { TABLE = "QUSRSYS.HTTPLOG" %}
%{ Liste détail %} %FUNCTION(DTW_SQL) query1(){ select substr(logtim, 2, 11) AS DATE, substr(logtim, 14, 8) AS HEURE, LOGADD, LOGURL, LOGSTS, LOGBYT from $(TABLE) where substr(logtim, 2, 11) = '$(WDATE)' ORDER BY 2 DESC %report{ <TABLE> <TR>
<TD>Heure</TD> <TD>Adresse</TD> <TD>URL/page</TD> <TD>Status</TD> <TD>ByTes</TD> </TD>
%row{ <TR>
<TD>$(V2)</TD> <TD>$(V3)</TD> <TD>$(V4)</TD> <TD>$(V5)</TD> <TD>$(V6)</TD> </TD>
%} </TABLE> %} %message{ 100: "aucune log à afficher ":CONTINUE %}
%} %{ Cumul par Page %}
%FUNCTION(DTW_SQL) query2(){ select LOGURL, count(*) from $(TABLE) where substr(logtim, 2, 11) = '$(WDATE)'BY LOGURL ORDER BY 2 DESC %report{ <TABLE> <TR>
<TD>URL/page</TD> <TD>Total</TD>
</TR>
%row{ <TR> <TD>$(V1) </TD> <TD>$(V2) </TD>
</TR>
%} </TABLE> %} %message{ 100: "aucune log à afficher ":CONTINUE %}
%} %{ Cumul par Adresse %} %FUNCTION(DTW_SQL) query3(){ select LOGADD, count(*)
from $(TABLE) where substr(logtim, 2, 11) = '$(WDATE)' GROUP BY LOGADD ORDER BY 2 DESC %report{ <TABLE> <TR>
<TD>Adresse </TD> <TD>Total </TD>
</TR>
%row{ <TR> <TD>$(V1) </TD> <TD>$(V2) </TD>
</TR>
%} </TABLE>
%} %message{ 100: "aucune log à afficher ":CONTINUE %}
%} %{ Cumul par général %} %FUNCTION(DTW_SQL) query4(){ select count(*)
from $(TABLE) where substr(logtim, 2, 11) = '$(WDATE)' %report{
%row{ Total général : $(V1)
%}
%}
%message{ 100: "aucune log à afficher ":CONTINUE %}
%}
%HTML(Input){
<HEAD> <SCRIPT LANGUAGE="JavaScript"> <!-- function valid(form) { if (FORM1.WDATE.value == "") { alert("Vous devez indiquer une Date"); return false; } } // End --> </SCRIPT>
</HEAD>
<BODY BGCOLOR="003f7f" > <FORM METHOD="POST" ACTION="http://e/QSYS.LIB/WWWCGI.LIB/DB2WWW.PGM/web/macros/httplog.db2/Report" name = "FORM1" onSubmit="return valid(this.form)" >
<H3> <center> Statistique du web </center> </H3> Date :
<input type="text" name="WDATE" SIZE=11 MAXLENGTH=11 value="$(WDATE)"> Format <script LANGUAGE="JavaScript"> <!-- JavaScript 1.0 var months=new Array(13); months[1]="Jan"; months[2]="Feb"; months[3]="Mar"; months[4]="Apr"; months[5]="May"; months[6]="Jui"; months[7]="Jul"; months[8]="Aug"; months[9]="Sep"; months[10]="Oct"; months[11]="Nov"; months[12]="Dec"; var time=new Date(); var lmonth=months[time.getMonth() + 1]; var date=time.getDate(); var year=time.getYear(); // Y2K Fix by Isaac Powell // http://onyx.idbsu.edu/~ipowell if ((navigator.appName == "Microsoft Internet Explorer") && (year < 2000)) year="19" + year; if (navigator.appName == "Netscape") year=1900 + year; document.write(date); if (date == 1) document.write("er"); document.write("/" + lmonth + "/" + year);
file://--> </script> <HR> <INPUT TYPE="SUBMIT" NAME="Lancer" VALUE="Détail"> <INPUT TYPE="SUBMIT" NAME="Lancer" VALUE="Cumul par adresse"> <INPUT TYPE="SUBMIT" NAME="Lancer" VALUE="Cumul par page"> </FORM> </BODY> %} %HTML(Report){ <HTML> <TITLE>Resultat</TITLE> <BODY BGCOLOR="003f7f" >
<FONT SIZE=5> <center>Début de liste $(WDATE) </center></FONT> <HR>
%IF ($(Lancer) == "Détail") @query1()
%ENDIF %IF ($(Lancer) == "Cumul par adresse") @query4() <HR> @query3() %ENDIF
%IF ($(Lancer) == "Cumul par page") @query4() <HR> @query2() %ENDIF
<HR> <FONT SIZE=5> <center>Fin de liste</center></FONT> </BODY> </HTML> %}
PLB
|