package com.pugh.sockso.web.log;
import com.pugh.sockso.db.Database;
import com.pugh.sockso.web.User;
import java.sql.SQLException;
/**
* Logs requests to the database
*
*/
public class DbRequestLogger implements RequestLogger {
private final Database db;
/**
* Creates a new database logger
*
* @param db
*
*/
public DbRequestLogger( final Database db ) {
this.db = db;
}
/**
* Logs a web request
*
* @param user
* @param ipAddress
* @param resource
* @param userAgent
* @param referer
* @param cookie
*
*/
public void log( final User user, final String ipAddress,
final String resource, final String userAgent,
final String referer, final String cookies ) {
try {
final String sql = " insert into request_log ( user_id, ip_address, " +
" request_url, user_agent, referer, cookies, " +
" date_of_request ) " +
" values ( " +
(user == null ? "null" : user.getId()) + ", " +
"'" +db.escape(ipAddress)+ "', " +
"'" +db.escape(resource)+ "', " +
"'" +db.escape(userAgent)+ "', " +
"'" +db.escape(referer)+ "', " +
"'" +db.escape(cookies)+ "', " +
" current_timestamp " +
" ) ";
db.update( sql );
}
catch ( final SQLException e ) {
e.printStackTrace();
}
}
}