I would expect you to partition on day or hour. And be ready to drop old partitions to purge data. See
http://dev.mysql.com/doc/refman/5.1/en/partitioning-range.html
Since you are into "data warehousing", let me give you some tips...
Shrink the data! I repeat, shrink the data!
* Normalize where reasonable.
* Consider inet_aton() for storing IP addresses in a 4-byte INT UNSIGNED instead of a 8- to 16-byte VARCHAR.
* What "size" needs two decimal places? Consider a 4-byte FLOAT instead.
* CHAR(15) _always_ consumes 15 bytes in the table. VARCHAR(15) consumes 1 to 16 bytes.
* TIMESTAMP is (used to be?) 4 bytes; DATETIME is 8 bytes.
Consider 'summary' tables. This will make reports soooooo much faster.
Your PRIMARY KEY assumes that no one can login twice in one second? And you probably want it flipped: (user, logdate)
If you get serious about summary table, recommend just an AUTO_INCREMENT on this table, not the PK you have.