まとめ @ wiki
アクセスログを記録する
最終更新:
shells
-
view
アクセスログを記録する-FileWriter/BufferedWriter・StringBuffer・Calendar/Date/SimpleDateFormatクラス- 【HP】
目次
ソース
bundle.jsp
<%@ page contentType="text/html; charset=Shift_JIS" import="java.io.*, java.util.*, java.text.*" %>
<%
FileWriter objFw = new FileWriter( application.getRealPath( "/IT/JSP_9/sample.log" ), true ); // 追加書き込み
// 1バイト受け取っては1バイト書き込む
BufferedWriter objBw = new BufferedWriter( objFw, 10 ); // 上記の非効率的なやりかたを防ぐ為バッファと併用する
StringBuffer objSb = new StringBuffer(); // 書き込むとき新しくオブジェクトを生成するのではなく、
// 追加するのでパフォーマンスに優れている( 可変長文字列 )
Calendar objCal = Calendar.getInstance(); // 日付データを保持し操作するクラス
SimpleDateFormat objFmt = new SimpleDateFormat( "yyyy/MM/dd HH:mm:ss" ); // フォーマットするデータはDateオブジェクトを指定
objSb.append( objFmt.format(objCal.getTime() )); objSb.append("\t"); // 文字列編集
objSb.append( request.getServletPath() ); objSb.append("\t");// タブ区切り
objSb.append( request.getRemoteAddr() ); objSb.append("\t");
objSb.append( request.getHeader( "referer" ) ); objSb.append("\t");
objSb.append( request.getHeader( "user-agent" ) ); objSb.append("\t");
objBw.write( objSb.toString() ); // 書き込み
objBw.newLine(); // 改行
objBw.close();
%>実行結果
指定したディレクトリにsample.logが出力される