まとめ @ 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が出力される

記事メニュー
ウィキ募集バナー